Wörterbuch mit JSON.NET deserialisieren
Ich verwende Newtonsoft.Json mit Version 4.0.8 und versuche, es mit der Web-API zu verwenden. Also wollte ich JSON mit deserialisieren
JsonConvert.DeserializeObject<AClass>(jsonString);
Dies funktioniert so lange, bis ich dieser Klasse ein Dictionary als Eigenschaft hinzugefügt habe und es deserialisieren wollte.
Die JSON-Zeichenfolge hat die Form von
{
"Date":null,
"AString":"message",
"Attributes":[
{"Key":"key1","Value":"value1"},
{"Key":"key2","Value":"value2"}
],
"Id":0,
"Description":"...
}
Beim Deserialisieren einer Ausnahme vom TypJsonSerializationException
tritt mit folgender Meldung auf: "Das JSON-Array kann nicht in den Typ "System.Collections.Generic.Dictionary`2 [System.String, System.String]" deserialisiert werden."
Was mache ich hier falsch?
UPDATE1: Bei der Serialisierung mit JSON.NET erhalte ich für das Wörterbuch Folgendes:
Attributes":{"key1":"value1","key2":"value2"}
WebApi deserialisiert das Objekt anscheinend anders als Json.Net. Serverseitig verwende ich folgende Zeile zur impliziten Deserialisierung:
return new HttpResponseMessage<AClass>(object);
UPDATE2: Als Workaround bin ich nun auf folgende Line Server Seite gekommen.
return new HttpResponseMessage<string>(JsonConvert.SerializeObject(license).Base64Encode());
Ich konvertiere es mit Json.Net Server Seite und übertrage es als Base64-codierte Zeichenfolge. So kann Json.Net sein eigenes Format deserialisieren.
Aber es ist immer noch nicht das, was ich will, also gibt es noch weitere Vorschläge?