从API返回返回的JSON

时间:2017-03-15 20:07:33

标签: asp.net json vb.net api json.net

我在asp.net VB中有以下JSON:

Dim jsonString As String = "{'results':[ {'comments':  'some text', 'date'   : 'some date', 'user':'aaa'},{'comments':  'some text2', 'date2'   : 'some date2', 'user':'aaa2'}]} "

Dim json As JObject = JObject.Parse(jsonString)

如何循环使用注释等值?

谢谢

1 个答案:

答案 0 :(得分:0)

Newtonsoft文档页面Querying JSON with LINQQuerying JSON with SelectToken描述了如何在加载后查询嵌套在JObject层次结构中的值。

例如,使用SelectTokens(),您可以按如下方式查询注释值:

' Get all comment values, convert them to simple strings, and store in an array:
Dim comments = json.SelectTokens("results[*].comments") _
    .Select(Function(t) t.ToString()) _
    .ToArray()

这里我使用通配符运算符[*]来匹配"results"数组中的所有元素。这是JSONPath query syntax的标准运算符SelectTokens()支持。

这是使用LINQ的等效逻辑:

Dim query = From item In json("results")
    Let comment = item("comments")
    Where comment IsNot Nothing
    Select CType(comment, String)               
Dim comments = query.ToArray()

示例fiddle