Json 陣列解析
阿新 • • 發佈:2018-12-11
可以通過兩種方式對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"]); }