Ich bin ein Webdienst, der mehrere Objekte in einer JSON-Zeichenfolge sendet.Deserialisieren mehrerer Objekte in JSON-Zeichenfolge
{ "id": null, "method": "ready", "params": [ { "accept": 1, "serial": "001d50101979" },
{
"result": {
"serial": "001d50101979",
"name": "001d50101979",
"model": "HMP200",
"mode": "normal",
"firmware": {
"version": "3.2.2-1.0.28801",
"status": "normal"
},
"uptime": "233.50",
"bootid": "e62f7839-95b1-4775-8476-c0b1b5b4857f"
},
"error": null,
"id": 1231
} ] }
Ich verwende die folgenden Klassen
Public Class Firmware
Public Property version As String
Public Property status As String
End Class
Public Class Result
Public Property serial As String
Public Property name As String
Public Property model As String
Public Property mode As String
Public Property firmware As Firmware
Public Property uptime As String
Public Property bootid As String
End Class
Public Class Param
Public Property accept As Integer
Public Property serial As String
End Class
Public Class Player
Public Property id As Object
Public Property method As String
Public Property params As Param()
End Class
Ich habe kein Problem Deserialisieren die Wurzelklasse Player
aber ich bin nicht sicher, wie die Klasse Ergebnis deserialisieren.
Dim Player As New Player
Player = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Player)(JsonString)
Dim FirmwareVersion As String = Player.id
Dim bootid As String = Player.method
Dim Model As String = Player.params(0).accept
Dim Serial As String = Player.params.ElementAt(0).serial
Die 'Param' Klasse falsch ist. Es sollte "Ergebnis" enthalten. Führen Sie Ihren Json durch etwas wie json2csharp. –
Param und Ergebnis werden als zwei separate Klassen übergeben. Die Param-Klasse ist in der Player-Klasse enthalten und ich kann darauf zugreifen. Die Ergebnisklasse ist nicht in den Player-Klassen enthalten und ich bin mir nicht sicher, wie ich darauf zugreifen soll. – rick9rick
Wenn ich den JSON durch einen JSON nach C# starte, bekomme ich die folgenden Klassen: – rick9rick