0

我正在尝试从此 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>();
4

2 回答 2

2

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

这是一个有 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}
   ]
}

*/

当然,这只是概念,您需要根据现实生活进行调整。

于 2013-08-12T17:21:25.633 回答
1

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

IList<JToken> results = googleSearch["response"].Skip(1).ToList();
于 2013-08-12T17:24:10.203 回答