我目前正在制作一个解析Urban Dictionary API的程序,但我无法让它返回所选的定义。
这是我目前检索和解析数据的代码:
Dim sourceString As String = New System.Net.WebClient().DownloadString("http://api.urbandictionary.com/v0/define?term=" & strRet)
rtxtDefinition.Text = sourceString
Dim jResults As JArray = JArray.Parse(sourceString)
Dim results As List(Of JToken) = jResults.Children().ToList()
For Each item As JProperty In results
item.CreateReader()
MsgBox(item.Value("definition"))
Next
请注意,strRet是用户输入 这是城市词典API结构的一个示例:http://pastebin.com/11Z5uVRN
当前代码不支持查找第(n)个定义,因为我首先需要让它返回定义。
所以显然我做错了因为错误:Newtonsoft.Json.JsonReaderException但我不确定。
任何帮助都会很棒。谢谢!
编辑:
答案 0 :(得分:0)
您正在处理的json字符串的根不是数组而是单个对象。因此,您可以将其解析为JObject
而不是JArray
,例如:
Dim jobj As JObject = JObject.Parse(sourceString);
Dim arr As JArray = jobj("list");
For Each(var item in arr.Children(Of JObject)())
MsgBox(item("definition").ToString());
Next