2014-02-11 14 views
1

在VB.NET窗體應用程序使用JSON.NET,我從第三方數據消耗,下面JSON.NET deserialising在沒有會員名稱可用

{ 
"Venue": { 
    "ID": "ABDDF", 
    "Name": "My Place", 
    "Address": { 
     "Address1": "London Road,", 
     "Address2": "", 
     "Town": "TEST TOWN", 
     "County": "TEST", 
     "Postcode": "PO1 1ST", 
     "Country": "United Kingdom", 
     "Region": "Europe" 
    }, 
    "Directions": "Blah Blah Blah", 
    "Images": { 
     "/images/venueXXX/ABDDF/image1.jpg": "Image of Venue", 
     "/images/venueXXX/ABDDF/image10.jpg": "Image of Venue", 
     "/images/venueXXX/ABDDF/image2.jpg": "Image of Venue", 
     "/images/venueXXX/ABDDF/image3.jpg": "Image of Venue", 
     "/images/venueXXX/ABDDF/image4.jpg": "Image of Venue" 
    }, 
    "Equipment": [ 
     { 
      "ID": 8127, 
      "VenueID": 1000, 
      "EquipmentID": 12, 
      "EquipmentName": "Secretarial", 
      "MaxQuantity": 1, 
      "ShowOnVenuePage": true 
     }, 
     { 
      "ID": 8128, 
      "VenueID": 1000, 
      "EquipmentID": 21, 
      "EquipmentName": "Typing Services", 
      "MaxQuantity": 1, 
      "ShowOnVenuePage": true 
     } 
    ] 
}, 
"ResponseStatus": { 
    "ErrorCode": "200", 
    "Message": "OK" 
} 
} 

簡化JSON一切是怎麼回事以及我已經創建了要用JSON數據填充的類,如下所示。

我打電話JSON.net的JsonConvert填充類

Dim QueryResult = JsonConvert.DeserializeObject(Of Container)(responseFromServer) 

但是我現在需要引用的JSON顯示的圖像,而設備可以被檢索到我的類的設備,我可以」不知道如何讓JSON.Net訪問圖像,因爲它們不在我稱爲命名對的位置。

所以問題是,我的類聲明應該如何允許JSON.net填充圖像(或者我需要添加一個?另外,對於我的參考,關於圖像的正確術語是什麼存儲在這個JSON?

Public Class VenueDirectoryResult 
    Public Response As ResponseStatus 
    Public ID As String 
    Public Name As String 
    Public Address As Address 
    Public Directions As String 
    Public Equipment As New List(Of Equipment) 
End Class 

Public Class Address 
Public Property Address1() As String 
    Get 
     Return m_Address1 
    End Get 
    Set(value As String) 
     m_Address1 = value 
    End Set 
End Property 
Private m_Address1 As String 
Public Property Address2() As String 
    Get 
     Return m_Address2 
    End Get 
    Set(value As String) 
     m_Address2 = value 
    End Set 
End Property 
Private m_Address2 As String 
Public Property Town() As String 
    Get 
     Return m_Town 
    End Get 
    Set(value As String) 
     m_Town = value 
    End Set 
End Property 
Private m_Town As String 
Public Property County() As String 
    Get 
     Return m_County 
    End Get 
    Set(value As String) 
     m_County = value 
    End Set 
End Property 
Private m_County As String 
Public Property Postcode() As String 
    Get 
     Return m_Postcode 
    End Get 
    Set(value As String) 
     m_Postcode = value 
    End Set 
End Property 
Private m_Postcode As String 
Public Property Country() As String 
    Get 
     Return m_Country 
    End Get 
    Set(value As String) 
     m_Country = value 
    End Set 
End Property 
Private m_Country As String 
Public Property Region() As String 
    Get 
     Return m_Region 
    End Get 
    Set(value As String) 
     m_Region = value 
    End Set 
End Property 
Private m_Region As String 
End Class 

Public Class Equipment 
Public Property ID() As Integer 
    Get 
     Return m_ID 
    End Get 
    Set(value As Integer) 
     m_ID = value 
    End Set 
End Property 
Private m_ID As Integer 
Public Property VenueID() As Integer 
    Get 
     Return m_VenueID 
    End Get 
    Set(value As Integer) 
     m_VenueID = value 
    End Set 
End Property 
Private m_VenueID As Integer 
Public Property EquipmentID() As Integer 
    Get 
     Return m_EquipmentID 
    End Get 
    Set(value As Integer) 
     m_EquipmentID = value 
    End Set 
End Property 
Private m_EquipmentID As Integer 
Public Property EquipmentName() As String 
    Get 
     Return m_EquipmentName 
    End Get 
    Set(value As String) 
     m_EquipmentName = value 
    End Set 
End Property 
Private m_EquipmentName As String 
Public Property MaxQuantity() As Integer 
    Get 
     Return m_MaxQuantity 
    End Get 
    Set(value As Integer) 
     m_MaxQuantity = value 
    End Set 
End Property 
Private m_MaxQuantity As Integer 
Public Property ShowOnVenuePage() As Boolean 
    Get 
     Return m_ShowOnVenuePage 
    End Get 
    Set(value As Boolean) 
     m_ShowOnVenuePage = value 
    End Set 
End Property 
Private m_ShowOnVenuePage As Boolean 
Public Property Price() As System.Nullable(Of Double) 
    Get 
     Return m_Price 
    End Get 
    Set(value As System.Nullable(Of Double)) 
     m_Price = value 
    End Set 
End Property 
Private m_Price As System.Nullable(Of Double) 
Public Property Vatable() As System.Nullable(Of Boolean) 
    Get 
     Return m_Vatable 
    End Get 
    Set(value As System.Nullable(Of Boolean)) 
     m_Vatable = value 
    End Set 
End Property 
Private m_Vatable As System.Nullable(Of Boolean) 
End Class 

添加響應類

Public Class ResponseStatus 
Public Property ErrorCode() As String 
    Get 
     Return m_ErrorCode 
    End Get 
    Set(value As String) 
     m_ErrorCode = value 
    End Set 
End Property 
Private m_ErrorCode As String 
Public Property Message() As String 
    Get 
     Return m_Message 
    End Get 
    Set(value As String) 
     m_Message = value 
    End Set 
End Property 
Private m_Message As String 
End Class 

這是容器類

Public Class Container 
    Public Venue As VenueDirectoryResult 
End Class 
+0

'ResponseStatus'類的定義在哪裏?或者它是'HttpResponse.Status'屬性? – Shiva

+0

剛剛添加到最後,我簡化了我的示例! –

+0

當然。謝謝!!! – Shiva

回答

3

要處理的圖像,你可以添加以下到您的VenueDirectoryResult類:

Public Images As Dictionary(Of String, String) 

您可以從字典檢查Keys收集得到的圖像列表。

就術語而言,圖像存儲在JSON對象中。該對象的屬性名稱在此用於保存圖像URL。

+0

非常好,謝謝 –

+0

沒問題;樂意效勞。 –