Deserializar Diccionario con JSON.NET
Estoy usando Newtonsoft.Json con la versión 4.0.8 y trato de usarlo con la API web. Así que quería deserializar JSON con
JsonConvert.DeserializeObject<AClass>(jsonString);
Esto funciona hasta que agregué un Diccionario como propiedad a esta clase y quise deserializarlo.
La cadena json está en la forma de
{
"Date":null,
"AString":"message",
"Attributes":[
{"Key":"key1","Value":"value1"},
{"Key":"key2","Value":"value2"}
],
"Id":0,
"Description":"...
}
Al deserializar excepción de tipoJsonSerializationException
Ocurre con el mensaje: "No se puede deserializar la matriz JSON en el tipo 'System.Collections.Generic.Dictionary`2 [System.String, System.String]'."
¿Qué estoy haciendo mal aquí?
ACTUALIZACIÓN1: Al serializar con JSON.NET obtengo lo siguiente para el diccionario:
Attributes":{"key1":"value1","key2":"value2"}
Parece que WebApi deserializa el objeto de una manera diferente a como lo haría Json.Net. En el lado del servidor, uso la siguiente línea para la deserialización implícita:
return new HttpResponseMessage<AClass>(object);
ACTUALIZACIÓN2: Como solución alternativa, vine ahora al lado del servidor de línea siguiente.
return new HttpResponseMessage<string>(JsonConvert.SerializeObject(license).Base64Encode());
Lo convierto con el lado del servidor Json.Net y lo transfiero como una cadena codificada en base64. Así que Json.Net puede deserializar su propio formato.
Pero todavía no es lo que quiero, ¿hay alguna otra sugerencia?