C# Newtonsoft.Json之LINQ To Json實例(二)

分類:編程 時間:2016-11-08
[摘要:4、Querying JSON with LINQ 剖析獵取json 字符串中的內容,對單級的能夠,對多級的時間發起應用下一種體式格局 //Querying with LINQ string json = @"{ sc]

四、Querying JSON with LINQ 解析獲取json 字符串中的內容,對於單級的可以,對於多級的時候建議使用下一種方式

//Querying with LINQ
string json = @"{
    school:{
    name:'實驗高中',
    students:[
        {name:'張三',age:18},
        {name:'李四',age:19}
    ],
    sites:['濟南','聊城']
    }
}";
JObject o = JObject.Parse(json);
string schname = (string)o["school"]["name"];
Console.WriteLine(schname); //實驗高中
string stuname = (string)o["school"]["students"][1]["name"];
Console.WriteLine(stuname);//李四
JArray sites = (JArray)o["school"]["sites"];
foreach (var item in sites)
{
    Console.WriteLine(item); //濟南  //聊城
}
IList<string> siteList = sites.Select(q => (string)q).ToList();
Console.WriteLine(sites.Count);//2

五、Querying JSON width SelectToken 使用SelectToken 方式獲取json 字符串中的內容(比較推薦的方式)

//	Querying JSON with SelectToken
string json = @"{
    school:{
    name:'實驗高中',
    students:[
        {name:'張三',age:18},
        {name:'李四',age:19}
    ],
    sites:['濟南','聊城']
    }
}";
JObject o = JObject.Parse(json);
//SelectToken 方法使用
string schname = (string)o.SelectToken("school.name");
Console.WriteLine(schname); //實驗高中
string stuname = (string)o.SelectToken("school.students[1].name");
Console.WriteLine(stuname); //李四
//SelectToken with JSONPath
JToken stu1 = o.SelectToken("$.school.students[?(@.name=='張三')]");
Console.WriteLine(stu1); //{"name": "張三","age": 18}
Console.WriteLine(stu1["age"]); //18
IEnumerable<JToken> stus = o.SelectTokens("$..students[?(@.age>15)]");
foreach (var item in stus)
{
    Console.WriteLine(item); //{"name": "張三",   "age": 18 }  
                                //{ "name": "李四",   "age": 19}
}
//SelectToken with LINQ
// $...name  意思是從當前接口文檔的1,2,3級中查找name,並返回結果
IList<string> names = o.SelectTokens("$...name").Select(q => (string)q).ToList();
Console.WriteLine(string.Join(",",names)); //實驗高中,張三,李四

Linq To JSON 一:http://blog.csdn.net/u011127019/article/details/52486867


Tags: 實驗高中 school 字符串 聊城

文章來源:


ads
ads

相關文章
ads

相關文章

ad