Newtonsoft json异常
我目前正在制作一个解析城市词典API的程序,但我无法让它返回所选定义 这是检索和解析数据之前的当前代码:Newtonsoft json异常,json,vb.net,parsing,exception,Json,Vb.net,Parsing,Exception,我目前正在制作一个解析城市词典API的程序,但我无法让它返回所选定义 这是检索和解析数据之前的当前代码: Dim sourceString As String = New System.Net.WebClient().DownloadString("http://api.urbandictionary.com/v0/define?term=" & strRet) rtxtDefinition.Text = sourceString Di
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结构的一个示例:
当前代码不支持查找第(n)个定义,因为我首先需要让它返回定义
所以很明显,由于这个错误,我做错了什么:Newtonsoft.Json.JsonReaderException,但我不确定
任何帮助都将是惊人的。谢谢
编辑:
您正在处理的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
能否添加异常详细信息(消息、堆栈等)。将要复制的部分复制到剪贴板会很有帮助。它将告诉我们更多关于正在发生的事情。我让它工作了,谢谢!现在我只需要弄清楚如何让它选择第一个或第二个,以此类推,因为它正在浏览20000个定义。。。