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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage