Newtonsoft json例外

时间:2014-03-28 00:50:06

标签: json vb.net parsing exception

我目前正在制作一个解析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但我不确定。

任何帮助都会很棒。谢谢!

编辑: Exception

1 个答案:

答案 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