将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
答
我无法找到足够的方法来做到这一点,直接在JSON。我转换了JSON字符串,并在XML中完成。我知道这不是最有效的方式,但我有几个最后期限要见面。我们将在稍后解决。
答
我知道这是事件发生后的几个月,但我只是在寻找一些Json解析示例,并偶然发现了这一点。在你的代码中,我注意到两行:
id = subitem("id")
amount = subitem("amount")
看上去是错误的 - 他们不应是:
id = subitem2("id")
amount = subitem2("amount")
道歉,如果我的路要走,但想到我会指出了我认为是的错误。
最有可能你没有检查是否有*存款“子项目。所有你解析出来的变量都被声明为块级变量,所以它们不会存在于这些循环之外。一般来说,好像你应该反序列化而不是解析是否有多个事物。 – Plutonix
@Plutonix你有任何反序列化所有子对象的建议吗?我是JSON的新手。 – Steve
JSON的外观如何? –