使用vb.net解析json代码异常

时间:2017-12-21 17:27:30

标签: json vb.net

我正在尝试使用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)

1 个答案:

答案 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中的几个项目,那么将它反序列化为一个N​​ET对象或集合可能会更容易,但这不是你提出的要求。这将列出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(字符串)看起来非常相似,但它是一个您可以查询的表单:

enter image description here