将JSON儿童解析为对象

问题描述:

我正在尝试将JSON儿童值解析为vb.net中的对象。下面的代码我已经能够获得第一组儿童对象,但我无法深入。当它到达子项目2时,它给了我一个'System.NullReferenceException'类型的未处理的异常发生。将JSON儿童解析为对象

Dim o As JObject = JObject.Parse(jsonstring) 
     Dim results As List(Of JToken) = o.Children().ToList 
     For Each item As JProperty In results 
      item.CreateReader() 

      Dim strfname As String 
      Dim strlname As String 
      Dim strphone As String 

      For Each subitem As JObject In item.Value 
       strfname = subitem("firstname") 
       strlname = subitem("lastname") 
       strphone = subitem("Phone") 

       For Each subitem2 As JObject In subitem("Deposits") 
        Dim id As String 
        Dim amount As String 
        id = subitem("id") 
        amount = subitem("amount") 
       Next 
      Next 
     Next 
+0

最有可能你没有检查是否有*存款“子项目。所有你解析出来的变量都被声明为块级变量,所以它们不会存在于这些循环之外。一般来说,好像你应该反序列化而不是解析是否有多个事物。 – Plutonix

+0

@Plutonix你有任何反序列化所有子对象的建议吗?我是JSON的新手。 – Steve

+0

JSON的外观如何? –

我无法找到足够的方法来做到这一点,直接在JSON。我转换了JSON字符串,并在XML中完成。我知道这不是最有效的方式,但我有几个最后期限要见面。我们将在稍后解决。

我知道这是事件发生后的几个月,但我只是在寻找一些Json解析示例,并偶然发现了这一点。在你的代码中,我注意到两行:

id = subitem("id") 
amount = subitem("amount") 

看上去是错误的 - 他们不应是:

id = subitem2("id") 
amount = subitem2("amount") 

道歉,如果我的路要走,但想到我会指出了我认为是的错误。