从json获取信息

时间:2013-08-12 17:09:53

标签: c# .net json

我正在尝试从这个json数据中解析“VID” {"response":[2,{"vid":165971367},{"vid":165971350}]}。 但它不想解析它。我认为json数据中存在“2”的问题。如何消除这个数字?

这是我的代码:

HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("some json data");
string googleSearchText = await response.Content.ReadAsStringAsync();
JObject googleSearch = JObject.Parse(googleSearchText);
IList<JToken> results = googleSearch["response"].Children().ToList();
IList<SearchResult> searchResults = new List<SearchResult>();

2 个答案:

答案 0 :(得分:2)

如果您使用Json.Net并将该json加载到JObject中,那么您将拥有一个名为“response”的属性,因此: myJson [ “响应”]

这是一个包含3个元素的JArray,因此跳过第一个元素。 .Skip(1) 然后你有IEnumerable并想要属性“vid”,所以像:

var myVids = (from vids in myJObject["response"].Skip(1)
               where vids["vid"] != null
               select vids["vid"])
/*  JSON

{"response":
   [2,
    {"vid":165971367},
    {"vid":165971350}
   ]
}

*/

当然,这只是概念,你需要适应现实生活。

答案 1 :(得分:1)

您可以使用Skip方法跳过第一项:

IList<JToken> results = googleSearch["response"].Skip(1).ToList();