解析对象中数组的json值

时间:2012-12-05 15:00:15

标签: vb.net json json.net

我在.net中使用Newtonsoft来解析json内容,并希望我实际上更好地研究了这个。我创建一个obj来解析字符串文本,方法是将所有子项列入JTOkens列表,然后从每个JProperty中获取各个值。但是现在我需要捕获一个值列表而不确定如何做到这一点。

 Dim jobj As JObject = JObject.Parse(msg.Body.ToString())
 Dim results As List(Of JToken) = jobj.Children().ToList
 For Each item As JProperty In results
            item.CreateReader()
            If item.Name = "id" Then
                statid = item.Value
            End If
 etc...

但是现在我在对象中找到了以下项目,需要所有“值”和“标签”

{"results":
 {
 {
   "language": {
   "value": "ja"
},
"matching_results": [
{
  "value": "iPhone5",
  "tag": "JOE"
},
{
  "value": "iPhone5",
  "tag": "BOB"
}
],}

2 个答案:

答案 0 :(得分:1)

我在处理JSON时遇到同样的问题,我找到了这个解决方案: -

function jsonParse(data)
{
  if(typeof data=='object')
  {
    for(var obj in data)
    {
      if(obj=='value')
      {
        console.log('value---',data[obj])
      }
      else if(obj=='tag')
      {
        console.log('tag---',data[obj])
      }
      jsonParse(data[obj])
    }
  }      
}

请删除所有带变量的控制台,希望这对您有所帮助。

答案 1 :(得分:0)

这只是将对象分解为令牌并将值读入列表的问题。

 Dim tags As List(Of JToken) = 
 item.Last.SelectToken("matching_results").Children()("tag").ToList