关于JSON格式字符串在C#中的使用(2)

这篇博客演示了如何使用C#进行JSON数据的读取和操作。通过JsonTextReader解析JSON字符串,展示键值对;使用JObject类解析并获取属性值;处理嵌套JSON,提取特定字段;以及处理JSON数组,访问数组元素。示例代码详尽展示了C#处理JSON的基本方法。

上一章讲述了如何创建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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值