RestSharp Deserialisieren von JSON-Inhalten(repräsentieren ein Objekt enthält ein byte-array) Fehler
Client-Seite erhält eine formale JSON-Inhalt "{\"Id\":[1,2,3],\"Size\":56}"
, bekomme aber eine Fehler bei der Deserialisierung der byte-array.
1 Fehler in der Anweisung unten
IRestResponse<key> response = client.Execute<key>(request);
2-Fehlermeldung "Keinen parameterlosen Konstruktor für dieses Objekt definiert."
3 Die object-Klasse in der client-Größe ist die gleiche wie im server-Seite:
public class key
{
public byte[] id { get; set; }
public int Size { set; get; }
}
4 ich habe versucht vorbei-Objekt enthält eine Zeichenkette und integer von JSON-format und das ist alles in Ordnung, aber byte-array.
Du musst angemeldet sein, um einen Kommentar abzugeben.
JsonDeserializer von RestSharp kann nicht deserialisiert array. Statt
byte[]
verwendenList<byte>
. Weitere Informationen finden Sie unter https://github.com/restsharp/RestSharp/wiki/DeserializationHabe ich dieses Problem auch. Meine Lösung war der Einsatz von RestSharp zum durchführen einer raw-ausführen und verwenden Json.NET Deserialisieren das Ergebnis:
keyResponse sollte jetzt eine Instanz der key-Klasse Deserialisierung von JSON-Inhalten.
Neben Chris Hogan ' s Antwort, möchte ich darauf hinweisen, dass ich habe diesen Fehler bei RestSharp falsch verwendet das Standard-serializer anstelle der benutzerdefinierten JSON.NET serializer ich zugewiesen hatte.
Der Grund dafür war, dass ich einen handler mit content-type
application/json
in der Erwägung, dass die API, bekam ich die Antwort zurückgegeben, die den Inhalt alstext/json
.Also durch ändern der
AddHandler
AufrufAddHandler("text/json", jsonDeserializer)
ich das Problem gelöst.