Deserialisierung von JSON-String zu VB.net Objekt
Ich versuche zu konvertieren, die einen JSON-String in eine VB.net Objekt zum einfachen Zugriff auf alle Daten in der JSON-String.
Mein JSON-String sieht wie folgt aus:
{
"status": "ok",
"count": 4,
"data": [
{
"clan_id": 500002846,
"nickname": "Azrael",
"id": 500429872
},
{
"clan_id": null,
"nickname": "Azrael0",
"id": 500913252
},
{
"clan_id": 500028112,
"nickname": "Azrael0313",
"id": 504109422
},
{
"clan_id": null,
"nickname": "Azrael7",
"id": 501594186
}
]
}
Jetzt versuche ich, zu Deserialisieren, diesen String in eine VB.net Objekt
Meiner Klasse Definitionen sind:
Public Class Rootobject
Private _data1 As String
Public Property status As String
Public Property count As Integer
Public Property data() As Datum
End Class
Public Class Datum
Public Property clan_id As Integer?
Public Property nickname As String
Public Property id As Integer
End Class
dem Visual Studio 2012 automatisch erstellt für mein JSON-String.
Ich habe versucht, zu Deserialisieren .JSON-Deserializer:
Dim Testobject As Rootobject _
= Global.Newtonsoft.Json.JsonConvert.DeserializeObject(Of Rootobject)(JSON_String)
und mit JavaScriptSerializer:
Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim Testobject_2 As Rootobject = serializer.Deserialize(Of Rootobject)(JSON_String)
Aber in beiden Fällen bin ich nur in der Lage, Zugriff auf "status" und "zählen", aber nicht im "data" - array.
Ich bin neu in Visual Basic, also Las ich eine Menge über JSON und Deserializer und andere Menschen mit dieser Art von Problemen, aber die meisten Lösungen sind für C# und nicht für VB.net
Irgendwelche Ideen, was könnte ich falsch gemacht haben?
Public Property data() As IList(Of Datum)
Dann sagt er: kann Nicht deserialisiert werden die aktuellen JSON-Objekt (z.B. {"name":"Wert"}) in Typ " System.Sammlungen.Generisches.IList`1[WoT_Tool.WoT_Tool+Datum]', weil die Art benötigt ein JSON-array (z.B. [1,2,3]) Deserialisieren korrekt. Um diesen Fehler zu beheben, ändern den JSON zu JSON-array (z.B. [1,2,3])
InformationsquelleAutor Azrael | 2013-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich konvertiert Ihre JSON mit
JsonToCSharp
...und dann in den C# vb.net...Geben, die diese Klassen ausprobieren.
InformationsquelleAutor christiandev
Du bist in der Nähe, habt Ihr die Klammern an der falschen Stelle. In Ihrem
Rootobject
Klasse, ändern Sie diese Zeile::
Oder auch:
InformationsquelleAutor Brian Rogers