2016-05-31 96 views
0

我从URL的JSON数据,我需要拆分值,JSON解析[和]

"name":"michael", 
"number":"0015454545", 
"age":"22", 
"interest":[ 
    ["swim","baseball","music","tenis"], 
    ["washington","3","27","a"], 
    ["New york","2","16","b"], 
    ["los angeles","21","11","c"], 
    ["dallas","7","22","a"] 
] 

我的代码:

Dim json As String = MyjsonDataLink 
Dim ser As JObject = JObject.Parse(json) 
Dim data As List(Of JToken) = ser.Children().ToList 

For Each item As JProperty In data 
    item.CreateReader() 
    If item.Name = "interest" Then 
     Response.Write(item.Value.ToString) 
     Response.Write("<br><br><br>") 
    Next 
    End If 
Next 

但是,文本输出,

["washington","3","27","a"], 
["new york","2","16","b"], 
["los angeles","21","11","c"], 
["dallas","7","22","a"]] 

我如何提取“华盛顿”,“纽约”,“洛杉矶”和“达拉斯”字符串?

+0

你确定那是什么打印?因为我预计会看到''“游泳”,“棒球”,“音乐”,“编辑”],'在那里,没有结尾']'...... –

+0

@ MikeMcCaughan-看起来像复制和粘贴起来。 op有'Next'和'End If'的错误... – ps2goat

+0

我需要解析“[”to“]”value .. – user2733659

回答

0

LINQ是为这样的情况而建造的。这里有一个控制台应用程序龙虎斗:

Imports Newtonsoft.Json.Linq 
Module Module1 
    Sub Main() 
    'ignore the <a> tag, it's just a trick for multi-line strings 
    Dim json = <a> 
{"name":"michael", 
"number":"0015454545", 
"age":"22", 
"interest":[ 
    ["swim","baseball","music","tenis"], 
    ["washington","3","27","a"], 
    ["New york","2","16","b"], 
    ["los angeles","21","11","c"], 
    ["dallas","7","22","a"] 
]}</a>.Value 
    Dim ser As JObject = JObject.Parse(json) 
    'now let LINQ do the work for us 
    Dim output = From s In ser("interest").Children Select s.First 
    For Each item In output 
     Console.Write(item) 
     Console.Write("<br/><br/><br/>") 
    Next 
    Console.ReadLine() 
    End Sub 
End Module 

结果:

swim<br/><br/><br/>washington<br/><br/><br/>New york<br/><br/><br/>los angeles<br/><br/><br/>dallas<br/><br/><br/> 
+0

这里有一些很棒的Json.Net LINQ信息(在C#中):http:// www .newtonsoft.com/JSON /帮助/ HTML/QueryingLINQtoJSON.htm –