2016-05-09 169 views
0

我正在嘗試將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的外觀如何? –

回答

0

我無法找到足夠的方法來做到這一點,直接在JSON。我轉換了JSON字符串,並在XML中完成。我知道這不是最有效的方式,但我有幾個最後期限要見面。我們將在稍後解決。

0

我知道這是事件發生後的幾個月,但我只是在尋找一些Json解析示例,並偶然發現了這一點。在你的代碼中,我注意到兩行:

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

看上去是錯誤的 - 他們不應是:

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

道歉,如果我的路要走,但想到我會指出了我認爲是的錯誤。