2012-05-09 44 views
1

我試圖從下面的JSON示例在vb.net中創建一個類。如何從這個JSON創建一個VB.net類?

我對JSON相當陌生,而我只是很難找出正確的方法。我已經看過如何做到這一點的許多例子,但它們的格式比我在下面提供的格式要簡單得多。

LEVEL0({ 
    "LEVEL1": [ 
    { 
     "LEVEL2": [ 
     { 
      "City": "Billings", 
      "State": "MO", 
      "Country": "US", 
      "Id": "1122334455", 
      "Percent": "39.10" 
      } 
     ], 
     "City": "Billings", 
     "Country": "US", 
     "NumFound": "1", 
     "NumReturned": "1", 
     "State": "MO", 
     "Status": "Success" 
    } 
    ], 
    "Status": "1" 
}); 

我在想這會很容易,但是是什麼導致我的問題是LEVEL2是一個列表。它可能會返回多個城市。所以,它可以在[]中返回類似的內容。

{"City": "Billings","State": "MO","Country": "US","Id": "1122334455","Percent": "39.10"}, 
{"City": "Fairmount","State": "MN","Country": "US","Id": "1177775","Percent": "64.10",} 

因此,無論方式,部分需要有一個名單,但隨後的列表下方的部分需要是類也的一部分。你在哪裏看到numFound。

我猜這是措辭不佳,但我正在努力找到一個很好的例子來說明如何做到這一點。任何方向或建議,將不勝感激。我需要正確格式化類,因此當我反序列化到類中時,它沒有錯誤。

回答

2

如果您使用的是某種類型的web服務,它應該自動爲您綁定,如果您使用的是具有所有這些屬性的對象。喜歡的東西:

Public Class WrapperClass 
    Dim Status As Integer 
    Dim LEVEL1 As New List(Of MiddleClass) 
End Class 

Public Class MiddleClass 
    Dim LEVEL2 As New List(Of InnerClass) 
    Dim City As String 
    Dim Country As String 
    Dim NumFound As Integer 
    Dim NumReturned As Integer 
    Dim State As String 
    Dim Status As String 

    Public Sub MiddleClass() 
    'init code 
    End Sub 
End Class 

Public Class InnerClass 
    Dim City As String 
    Dim Country As String 
    Dim State As String 
    Dim Id As Integer 
    Dim Percent As Decimal 
End Class 

然後在你的web服務,有它接受類型的參數WrapperClass

+1

即使OP沒有使用Web服務,這是如何建立一個類一個很好的模式JSON! – kaveman

+1

謝謝你非常有幫助。我的情況比我想象的要複雜得多,我應該給出一個比我更好的例子,但是這讓我正確思考了這一點。 –