2014-03-28 47 views
1

我目前正在制作一个解析Urban Dictionary API的程序,但是我无法得到它返回选定的定义。Newtonsoft json异常

这是我当前的代码前检索和分析数据:

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

+0

您可以添加异常的详细信息(消息,堆栈等) – bryanmac

+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 
+0

我得到它的工作,谢谢!现在我只需要弄清楚如何选择第一或第二等,因为它正在查看像20000的定义... – Unreliaable