mar*_*zzz 53 .net c# linq json linq-to-json
这是我从.NET上的请求得到的JSON:
{
"id": "110355660738",
"picture": {
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/1027085_12033235063_5234302342947_n.jpg",
"is_silhouette": false
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想用(或许?)LINQ捕捉字段"url".我做了很多请求,这有点不同.所以我不会创建一个C#类并且每次都反序列化它.
它是一种提取单个字段的方法吗?谢谢!
I4V*_*I4V 82
不需要Linq,只需使用dynamic(使用Json.Net)
dynamic obj = JObject.Parse(json);
Console.WriteLine((string)obj.picture.data.url);
Run Code Online (Sandbox Code Playgroud)
Linq版本的可读性不高
JObject jObj = JObject.Parse(json);
var url = (string)jObj.Descendants()
.OfType<JProperty>()
.Where(p => p.Name == "url")
.First()
.Value;
Run Code Online (Sandbox Code Playgroud)
文档:LINQ to JSON
我不推荐LINQ.我会推荐一个JSON库,如newtonsoft.json.
所以你可以这样做:
string json = @"{
""Name"": ""Apple"",
""Expiry"": "2008-12-28T00:00:00",
""Price"": 3.99,
""Sizes"": [
""Small"",
""Medium"",
""Large""
]
}";
JObject o = JObject.Parse(json);
string name = (string)o["Name"];
// Apple
JArray sizes = (JArray)o["Sizes"];
string smallest = (string)sizes[0];
// Small
Run Code Online (Sandbox Code Playgroud)
注意: - 此代码已从项目站点上的示例中复制 http://james.newtonking.com/pages/json-net.aspx
| 归档时间: |
|
| 查看次数: |
41075 次 |
| 最近记录: |