Почему этот анонимный тип с несколькими свойствами не десериализуется должным образом с помощью JsonConvert.DeserializeAnonymousType?
Я задавал этот вопрос ранее, и теперь у меня проблемы с другой подобной строкой JSON.
Вот моя строка JSON:
{"responseObject":{"code":"0","message":"HI","url":"www.abc.com","token":"{\"token\":\"abcdef\",\"id\":123}"}}
Вот мой код для десериализации, который не работает:
var def = new
{
code = string.Empty,
message = string.Empty,
url= string.Empty,
token = new {token = string.Empty}
};
var response = JsonConvert.DeserializeAnonymousType(data, def);
var innerDef = new { token= string.Empty, id= string.Empty };
var deserializedInner = JsonConvert.DeserializeAnonymousType(response.token.token, innerDef);
2 ответа
Решение
У вас было две основные проблемы:
- Вы не брали
responseObject
в учетную запись. - Вы дали внешнее
token
неправильный тип. Это строка, содержащая JSON, а не объект.
Это работает:
var def = new
{
responseObject = new
{
code = string.Empty,
message = string.Empty,
url = string.Empty,
token = string.Empty
}
};
var response = JsonConvert.DeserializeAnonymousType(data, def);
var innerDef = new { token = string.Empty, id = string.Empty };
var deserializedInner =
JsonConvert.DeserializeAnonymousType(response.responseObject.token, innerDef);