J'essaye de désérialiser json retourné par certaines directions API similaire à Google Maps API. Mon JSON est la suivante (j'utilise VB.NET 2008):Deserialize complexe JSON (VB.NET)
jsontext = { "version": 0,3, "status": 0, "route_summary": { "total_distance": 300, "TOTAL_TIME": 14, "point_départ": "43", "end_point": "42" }, "route_geometry": [[51.025421,18.647631], [51.026131,18.6471], [51,027802, 18.645639]], "route_instructions": [["Tête nord-ouest sur 43", 88,0,4, "88 m", "NW", 334,8], ["Continuer sur 42", 212,1,10, " 0,2 km "," NW ", 331,1," C ", 356,3]] }
Jusqu'à présent, je suis venu avec le code suivant:
Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
Dim lstTextAreas As Output_CloudMade() = js.Deserialize(Of Output_CloudMade())(jsontext)
Je ne sais pas comment définir la classe complexe, à savoir Output_CloudMade.
J'essaie quelque chose comme:
Public Class RouteSummary
Private mTotalDist As Long
Private mTotalTime As Long
Private mStartPoint As String
Private mEndPoint As String
Public Property TotalDist() As Long
Get
Return mTotalDist
End Get
Set(ByVal value As Long)
mTotalDist = value
End Set
End Property
Public Property TotalTime() As Long
Get
Return mTotalTime
End Get
Set(ByVal value As Long)
mTotalTime = value
End Set
End Property
Public Property StartPoint() As String
Get
Return mStartPoint
End Get
Set(ByVal value As String)
mStartPoint = value
End Set
End Property
Public Property EndPoint() As String
Get
Return mEndPoint
End Get
Set(ByVal value As String)
mEndPoint = value
End Set
End Property
End Class
Public Class Output_CloudMade
Private mVersion As Double
Private mStatus As Long
Private mRSummary As RouteSummary
'Private mRGeometry As RouteGeometry
'Private mRInstructions As RouteInstructions
Public Property Version() As Double
Get
Return mVersion
End Get
Set(ByVal value As Double)
mVersion = value
End Set
End Property
Public Property Status() As Long
Get
Return mStatus
End Get
Set(ByVal value As Long)
mStatus = value
End Set
End Property
Public Property Summary() As RouteSummary
Get
Return mRSummary
End Get
Set(ByVal value As RouteSummary)
mRSummary = value
End Set
End Property
'Public Property Geometry() As String
' Get
' End Get
' Set(ByVal value As String)
' End Set
'End Property
'Public Property Instructions() As String
' Get
' End Get
' Set(ByVal value As String)
' End Set
'End Property
End Class
mais il ne fonctionne pas. Le problème est avec des propriétés complexes, comme route_summary. Il est rempli de "rien". D'autres propriétés, telles que "status" ou "version" sont correctement renseignées.
Des idées, comment définir une classe pour le JSON ci-dessus? Pouvez-vous partager un code de travail pour la désérialisation de JSON dans VB.NET?
Merci,