1. 程式人生 > >Json 陣列解析

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"]);
}