上一章讲述了如何创建JSON字符串,这一节实现JSON字符串的读取操作。
测试代码1:
string jsonText = @"{"“Name”" : ““Jack””, ““Age”” : ““22"”}”;
Console.WriteLine(jsonText) ; //{“Name” : “Jack”, “Age” : “22”}
JsonReader reader = new JsonTextReader(new StringReader(jsonText));
while (reader.Read())
{
Console.WriteLine(reader.TokenType + “\t\t” + reader.ValueType + “\t\t” + reader.Value);
}
Console.Read();
输出:
StartObject
PropertyName System.String Name
String System.String Jack
PropertyName System.String Age
String System.String 22
EndObject
从解析出来的值,可以看出,值类型,键的名称,键对应的值.
测试代码2:
string jsonText = @"{"“Name”" : ““Jack””, ““Age”” : ““22"”}”;
JObject jo = JObject.Parse(jsonText);
string[] values = jo.Properties().Select(item => item.Name.ToString() + “:” + item.Value.ToString()).ToArray();
foreach (string s in values)
{
Console.WriteLine(s);
}
Console.Read();
输出:
Name:Jack
Age:22
测试代码3:
//嵌套格式
string jsonText = “{\“shanghai\”:{\“zone\”:\“浦东\”,\“zone_en\”:\“pudong\”}}”;
Console.WriteLine(jsonText);
var jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo[“shanghai”][“zone”].ToString();
Console.WriteLine(zone);
string zone_en = jo[“shanghai”][“zone_en”].ToString();
Console.WriteLine(zone_en);
输出:
{“shanghai”:{“zone”:“浦东”,“zone_en”:“pudong”}}
浦东
pudong
测试代码4:
//数组型数据
string jsonArrayText1 = “[{‘Name’:‘Tom’,‘Age’:‘16’},{‘Name’:‘Mary’,‘Age’:‘15’}]”;
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
string name1 = ja[1][“Name”].ToString();
Console.WriteLine(name1);
//或者
JObject o = (JObject)ja[1];
string name2 = o[“Name”].ToString();
Console.WriteLine(name2);
输出:
Mary
Mary
这篇博客演示了如何使用C#进行JSON数据的读取和操作。通过JsonTextReader解析JSON字符串,展示键值对;使用JObject类解析并获取属性值;处理嵌套JSON,提取特定字段;以及处理JSON数组,访问数组元素。示例代码详尽展示了C#处理JSON的基本方法。

650

被折叠的 条评论
为什么被折叠?



