我有以下代码:
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);
Run Code Online (Sandbox Code Playgroud)
输入responsecontent是JSON,但未正确解析为对象.我应该如何正确地反序列化它?
我的JSON提要有嵌套对象,如下所示:
{
"id": 1765116,
"name": "StrozeR",
"birth": "2009-08-12",
"avatar": "http:\/\/static.erepublik.com\/uploads\/avatars\/Citizens\/2009\/08\/12\/f19db99e9baddad73981d214a6e576ef_100x100.jpg",
"online": true,
"alive": true,
"ban": null,
"level": 61,
"experience": 183920,
"strength": 25779.42,
"rank": {
"points": 133687587,
"level": 63,
"image": "http:\/\/www.erepublik.com\/images\/modules\/ranks\/god_of_war_1.png",
"name": "God of War*"
},
"elite_citizen": false,
"national_rank": 6,
"residence": {
"country": {
"id": 81,
"name": "Republic of China (Taiwan)",
"code": "TW"
},
"region": {
"id": 484,
"name": "Hokkaido"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的对象类是这样的:
class Citizen
{
public class Rank
{
public int points { get; set; }
public int level …Run Code Online (Sandbox Code Playgroud) 我正在努力将json转换为c#对象.
我的json是由另一个app(在typescript中)生成的,这里是用于生成json的对象的结构:
有了这个结构,我就可以创建json:
{
EQNode: { key: "userid", value: 5}
}
Run Code Online (Sandbox Code Playgroud)
或者更复杂:
{
AndNode: [
{
EQNode: { key: "userid", value: 5 }
},
{
LikeNode: { key: "username", value: "foo" }
}
]
}
Run Code Online (Sandbox Code Playgroud)
甚至更复杂:
{
AndNode: [
{
EQNode: { key: "userid", value: 5 }
},
{
OrNode: [
{
LikeNode: { key: "username", value: "foo" }
},
{
LikeNode: { key: "email", value: "foo@bar.fr" }
},
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我已经设法使用这个模型解析我的json:
public class EQNode
{
[JsonProperty("key")]
public …Run Code Online (Sandbox Code Playgroud)