Json 数组解析

可以通过两种方式对Json进行解析。

一种方式是通过JsonConvert.DeserializeObject<T>这个方法把Json序列化为特定的类。C#的类可以通过VS工具生成(复制你的Json,然后在vs里面打开菜单编辑,选择性粘贴,选择从json格式复制,自动帮你生成对应的类),或者用在线工具,把Json自动生成C#类。

eg.Json如下:

{
  "infos": "infos",
  "data": [
    {
      "id": "123",
      "name":"鸣人"
    },
    {
      "id": "345",
      "name":"佐助"
    }
  ]
}

生成的C#类如下:

 public class Rootobject
        {
            public string infos { get; set; }
            public Datum[] data { get; set; }
        }

        public class Datum
        {
            public string id { get; set; }
            public string name { get; set; }
        }

 解析的代码如下:

string jsonText = "{\r\n  \"infos\": \"infos\",\r\n  \"data\": [\r\n    {\r\n      \"id\": \"123\", \r\n      \"name\": \"鸣人\" }\r\n , \r\n    {\r\n      \"id\": \"456\", \r\n      \"name\": \"佐助\" }\r\n]\r\n}";
Rootobject root = JsonConvert.DeserializeObject<Rootobject>(jsonText);
foreach (Datum data in root.data)
{
      Console.WriteLine(data.id.ToString());
      Console.WriteLine(data.name.ToString());
}

第一种 使用JsonArray 解析,代码如下:

string jsonText = "{\r\n  \"infos\": \"infos\",\r\n  \"data\": [\r\n    {\r\n      \"id\": \"123\", \r\n      \"name\": \"鸣人\" }\r\n , \r\n    {\r\n      \"id\": \"456\", \r\n      \"name\": \"佐助\" }\r\n]\r\n}";
JObject jObject =(JObject)JsonConvert.DeserializeObject(jsonText);
JArray jArray = (JArray)jObject["data"];
foreach(var item in jArray)
{
     Console.WriteLine(item["id"]);
     Console.WriteLine(item["name"]);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值