可以通过两种方式对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"]);
}