作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 JSON 字符串:
{"response":{"token":"{\"token\":\"123\",\"id\":191}"}}
然后我有以下代码反序列化它,但它返回 null:
var def = new
{
token = new { token = string.Empty, id= string.Empty }
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(token, def);
deserializedToken
为空
这是一个我无法开始工作的更详细的示例:
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);
最佳答案
据我所知,这里有两个问题:
response
属性token
属性的值因此,如果您将代码更改为:
var def = new
{
response = new { token = "" }
};
var deserializedToken = JsonConvert.DeserializeAnonymousType(json, def);
Console.WriteLine(deserializedToken);
然后你会得到:
{ response = { token = {"token":"123","id":191} } }
如果你也想反序列化 token/id 部分,你可以这样做:
var innerDef = new { token = "", id = "" };
var deserializedInner = JsonConvert.DeserializeAnonymousType
(deserializedToken.response.token, innerDef);
Console.WriteLine(deserializedInner);
然后打印:
{ token = 123, id = 191 }
关于c# - 为什么这个匿名类型不能使用 JsonConvert.DeserializeAnonymousType 正确反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20123398/
我有 JSON 字符串: {"response":{"token":"{\"token\":\"123\",\"id\":191}"}} 然后我有以下代码反序列化它,但它返回 null: var d
我是一名优秀的程序员,十分优秀!