Desserialize Dictionary com JSON.NET
Eu estou usando Newtonsoft.Json com a versão 4.0.8 e tentando usá-lo com a API da Web. Então, eu queria desserializar o JSON com
JsonConvert.DeserializeObject<AClass>(jsonString);
Isso funciona até que eu adicionei um Dictionary como propriedade a essa classe e queria desserializá-la.
A cadeia json está na forma de
{
"Date":null,
"AString":"message",
"Attributes":[
{"Key":"key1","Value":"value1"},
{"Key":"key2","Value":"value2"}
],
"Id":0,
"Description":"...
}
Ao desserializar a exceção do tipoJsonSerializationException
Ocorre com mensagem: "Não é possível desserializar a matriz JSON no tipo 'System.Collections.Generic.Dictionary`2 [System.String, System.String]'."
O que eu estou fazendo errado aqui?
UPDATE1: Ao serializar com o JSON.NET, recebo o seguinte para o dicionário:
Attributes":{"key1":"value1","key2":"value2"}
Parece que o WebApi desserializa o objeto de outra maneira que o Json.Net faria. Lado do servidor Eu uso a seguinte linha para deserialização implícita:
return new HttpResponseMessage<AClass>(object);
UPDATE2: Como uma solução alternativa eu vim agora para seguir o lado do servidor de linha.
return new HttpResponseMessage<string>(JsonConvert.SerializeObject(license).Base64Encode());
Eu convertê-lo com o lado do servidor Json.Net e transferi-lo como string codificada base64. Então Json.Net pode desserializar seu próprio formato.
Mas ainda não é isso que eu quero, então são mais alguma sugestão?