Ich versuche, mein JSON-Ergebnis zu lesen.Das aktuelle JSON-Objekt kann nicht in Typ 'System.Collections.Generic.List' deserialisiert werden
Hier ist meine JsonResult
public class JsonResult
{
public string ResponseStatus;
public string Status;
public string Remarks;
public string ErrorCode;
public List<Data> data;
}
public class Data
{
public string Status;
public DateTime Date;
public string Number;
public string Amount;
public string Balance;
public string TranId;
public string OPTId;
public string RefId;
}
Hier Ergebnis meine JSON ist
{
"ResponseStatus":"1",
"Status":"Success",
"Remarks":"Your recharge has been Pending.",
"ErrorCode":"3",
"Data":
{
"Status":"Pending",
"Date":"2017-02-23T17:22:26.2001954+05:30",
"Number":"9915933511",
"Amount":10.0,
"Balance":137.714,
"TranId":"1126887",
"OPTId":"","RefId":""
}
}
Hier mein Code ist das Ergebnis
var result = JsonConvert.DeserializeObject<List<JsonResult>>(retPKT);
Aber Erste Ausnahme ..
zu lesenDas aktuelle JSON-Objekt kann nicht deserialisiert werden (z. {"name": "value"}) in Typ 'System.Collections.Generic.List`1 [JsonResult + Data]' weil der Typ erfordert ein JSON-Array (zB [1,2,3]) zum Deserialisieren korrekt. Um diesen Fehler zu beheben, ändern Sie entweder den JSON in ein JSON-Array (zB [1,2,3]) oder ändern Sie den deserialisierten Typ, so dass es ein normaler .NET-Typ ist (zB kein primitiver Typ wie ganze Zahlen, keine Sammlung) Typ wie ein Array oder eine Liste), die von einem JSON Objekt deserialisiert werden können. JsonObjectAttribute kann auch zu dem Typ hinzugefügt werden, um es zu erzwingen, von einem JSON-Objekt zu deserialisieren. Pfad 'Daten.Status', Zeile 1, Position 118.
Wie kann ich das beheben?
Um diese Auflösung selbst zu erreichen: Überprüfen Sie Ihr JSON, um sicherzustellen, dass es gültig ist (http://jsonlint.com) und geben Sie dann Ihre vollständige JSON-Zeichenfolge in http://json2csharp.com ein, um die Klassen für Sie zu erstellen. –