我正在尝试使用vb.net windows窗体应用程序来解析一些JSON代码。我的代码构建得很好并且编译,但是当我点击我的按钮时,我得到了这个例外:
Newtonsoft.Json.JsonReaderException:'解析NaN值时出错。路径'',第1行,第1位。'
异常指向代码末尾的这一行:
newtype List a = List (Maybe (a, List a)) deriving Foldable
ghci> import Data.Foldable
ghci> toList $ List (Just ('a', List Nothing))
"a"
我试图解决它,但我不知道该怎么做了。这是我的代码:
For Each item As JObject In JArray.Parse(jsonObjects.SelectTokens("items").ToString)
答案 0 :(得分:0)
I am trying to ... parse through some JSON
在循环开始之前到达异常之前,这不会产生任何非常有用的东西:
Console.WriteLine("id:" & jsonObjects.SelectTokens("id").ToString)
SelectTokens
会返回IEnumerable(Of Newtonsoft.Json.Linq.JToken)
。尝试使用ToString
显示它只会导致:
Newtonsoft.Json.Linq.JsonPath.FieldFilter+<ExecuteFilter>d__0
如果你想要整个JSON中的几个项目,那么将它反序列化为一个NET对象或集合可能会更容易,但这不是你提出的要求。这将列出Tom拥有的项目:
Dim jobj = JObject.Parse(Candyjson)
' print the Id, name and how many items there are
Console.WriteLine("Id: {0} Name: {1} has {2} Items", jobj("id"), jobj("name"),
jobj("items").Count)
' print each item name and how many there are
For n As Int32 = 0 To jobj("items").Count - 1
Console.WriteLine("Item: {0}, Count: {1}",
jobj("items")(n)("name"),
jobj("items")(n)("count")
)
Next
结果:
Id:1姓名:tom有2件商品
项目:苹果,数量:1 项目:牛奶,数量:2
您解析JSON,生成的JObject将包含各种其他内容,具体取决于JSON中的内容。如果设置断点并检查jobj
,结果将与您的JSON(字符串)看起来非常相似,但它是一个您可以查询的表单: