serializeobject serialize serializar newtonsoft net jsonconvert example deserialize c# .net json json.net json-deserialization

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);