serialize - serializar json c#
¿Por qué este tipo anónimo no se deserializa correctamente utilizando JsonConvert.DeserializeAnonymousType? (1)
Aquí hay dos problemas, por lo que puedo decir:
- No tienes una propiedad de
response
para deserializar - La parte "token: 123 id: 191" es en realidad solo una cadena: el valor de la propiedad del
token
externo
Entonces, si cambias tu código a:
var def = new
{
response = new { token = "" }
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(json, def);
Console.WriteLine(deserializedToken);
entonces terminarás con:
{ response = { token = {"token":"123","id":191} } }
Si quieres deserializar la parte del token / id también, puedes hacer eso con:
var innerDef = new { token = "", id = "" };
var deserializedInner = JsonConvert.DeserializeAnonymousType
(deserializedToken.response.token, innerDef);
Console.WriteLine(deserializedInner);
Eso luego imprime:
{ token = 123, id = 191 }
Tengo la cadena JSON:
{"response":{"token":"{/"token/":/"123/",/"id/":191}"}}
Y luego tengo el siguiente código para deserializarlo, pero está devolviendo nulo:
var def = new
{
token = new { token = string.Empty, id= string.Empty }
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(token, def);
deserializedToken
es nulo
Aquí hay un ejemplo más detallado que no puedo poner en práctica:
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);