I have the JSON string:
{"response":{"token":"{\"token\":\"123\",\"id\":191}"}}
And then I have the following code to Deserialize it, but it is returning null:
var def = new
{
token = new { token = string.Empty, id= string.Empty }
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(token, def);
deserializedToken
is null
Here is a more detailed example that I can't get to work:
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);
DeserializeObject Method. Deserializes the JSON to a . NET object.
NET objects (deserialize) A common way to deserialize JSON is to first create a class with properties and fields that represent one or more of the JSON properties. Then, to deserialize from a string or a file, call the JsonSerializer. Deserialize method.
This article is about serialization, not deserialization. Polymorphic deserialization is not supported, but as a workaround you can write a custom converter, such as the example in Support polymorphic deserialization.
Provides methods for converting between . NET types and JSON types.
There are two problems here, as far as I can tell:
response
property to deserializetoken
propertySo if you change your code to:
var def = new
{
response = new { token = "" }
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(json, def);
Console.WriteLine(deserializedToken);
then you'll end up with:
{ response = { token = {"token":"123","id":191} } }
If you want to deserialize the token/id part as well, you can do that with:
var innerDef = new { token = "", id = "" };
var deserializedInner = JsonConvert.DeserializeAnonymousType
(deserializedToken.response.token, innerDef);
Console.WriteLine(deserializedInner);
That then prints:
{ token = 123, id = 191 }
string jsonToken = @"{'response':{'token':{'token':'123','id':191}}}";
var def = new
{
response = new
{
token = new { token = string.Empty, id = 0 }
}
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(jsonToken, def);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With