2015-02-23 27 views
0

我試圖反序列化JSON字符串成一類,但我有困難構建DataContract類。創建JSON DataContract類VB.NET

這裏的JSON響應字符串的例子:

{ 
    "id": null, 
    "result": { 
        "SCD2": { 
           "connected": false 
          }, 
        "FHM1": { 
           "connected": false 
          }, 
        "SCD1": { 
           "connected": false 
          }, 
        "POS2": { 
           "connected": false 
          }, 
        "POS1": { 
           "connected": false 
          } 
      }, 
    "error": null 
} 

這裏是我迄今爲止..我想不出什麼來對結果數據成員做類:

<DataContract()> _ 
Public Class JSON_RESP 
    'region Properties 

    <DataMember(Name:="id")> Public id As String 

    <DataMember(Name:="result")> Public result As New List(Of String) 

    <DataMember(Name:="error")> Public errors As New JSON_ERROR 

    'endregion 

End Class 

<DataContract()> _ 
Public Class JSON_ERROR 
    'region Properties 

    <DataMember(Name:="fault")> Public fault As String 

    <DataMember(Name:="faultCode")> Public faultCode As String 

    <DataMember(Name:="faultString")> Public faultString As String 

    'endregion 
End Class 
+0

我做了一些改動,使其更通用的,但我希望有一個更優雅的方式來做到這一點: – BCCrackDaddy 2015-02-23 22:43:26

+0

那是一個奇怪的看着JSON。看看它是如何分解:http://jsonutils.com/ – Plutonix 2015-02-23 22:46:50

回答

0

我做了,似乎工作,使這個更通用一些變化,但我想一個更優雅的解決方案:

_ 公共類JSON_RESP(Of T)已 '區域屬性

<DataMember(Name:="id")> Public id As String 

<DataMember(Name:="result")> Public result As T 

<DataMember(Name:="error")> Public errors As New JSON_ERROR 

'endregion 

末級

_ 公共類SwitchStatus ' 區域屬性

<DataMember(Name:="POS1")> Public POS1 As New ConnectionStatus 
<DataMember(Name:="POS2")> Public POS2 As New ConnectionStatus 
<DataMember(Name:="SCD1")> Public SCD1 As New ConnectionStatus 
<DataMember(Name:="SCD2")> Public SCD2 As New ConnectionStatus 
<DataMember(Name:="FHM1")> Public SCD3 As New ConnectionStatus 

'endregion 

末級

_ 公共類ConnectionStatus 「區域屬性

<DataMember(Name:="connected")> Public connected As Boolean 

'endregion 

末級

+0

你不需要'New'的聲明只是爲了反序列化 – Plutonix 2015-02-23 22:47:30