Десериализовать словарь с помощью JSON.NET

Я использую Newtonsoft.Json с версией 4.0.8 и пытаюсь использовать его с веб-API. Поэтому я хотел десериализовать JSON с

JsonConvert.DeserializeObject<AClass>(jsonString);

Это работает, пока я не добавил словарь как свойство в этот класс и не хочу десериализовать его.

Строка JSON имеет вид

{ 
   "Date":null,
   "AString":"message",
   "Attributes":[
                   {"Key":"key1","Value":"value1"},      
                   {"Key":"key2","Value":"value2"}
                ],
    "Id":0,
    "Description":"...
}

При десериализации исключения типаJsonSerializationException происходит с сообщением: & quot;Cannot deserialize JSON array into type 'System.Collections.Generic.Dictionary`2[System.String,System.String]'.& Quot;

Что я здесь не так делаю?

UPDATE1: При сериализации с JSON.NET я получаю следующее для словаря:

Attributes":{"key1":"value1","key2":"value2"}

Похоже, что WebApi десериализует объект не так, как Json.Net. На стороне сервера я использую следующую строку для неявной десериализации:

return new HttpResponseMessage<AClass>(object);

UPDATE2: В качестве обходного пути я пришел к следующей линии на стороне сервера.

return new HttpResponseMessage<string>(JsonConvert.SerializeObject(license).Base64Encode());

Я конвертирую его на стороне сервера Json.Net и передаю как строку в кодировке base64. Таким образом, Json.Net может десериализовать свой собственный формат.

Но это все еще не то, что я хочу, так есть ли еще какие-нибудь предложения?

Ответы на вопрос(4)

Ваш ответ на вопрос