有一个我无法控制的 API,但我需要使用 C# 使用其输出,最好使用 JSON.Net。
这是一个示例响应:
[
{
"media_id": 36867,
"explicit": 0
}
]
我本来打算上这样的课:
class Media {
public int media_id;
public int explicit;
}
反序列化:
var l = JsonConvert.DeserializeObject<List<Media>>(s);
不幸的是,“explicit”是 C# 关键字,因此无法编译。
我的下一个猜测是修改类:
class Media {
public int media_id;
public int explicit_;
}
...并以某种方式将响应属性映射到 C# 属性。
我应该怎么做,还是我完全走错了路?
如果做不到这一点,我可以直接忽略响应中的“显式”,如果有办法做到这一点?
最佳答案
没有使用过 JSON.Net,但根据文档判断 here ,我认为您只需要执行您对 XmlSerialization 所做的操作:添加一个属性来说明应如何调用 JSON 属性:
class Media {
[JsonProperty("media_id")]
public int MediaId;
[JsonProperty("explicit")]
public int Explicit;
}
关于c# - 反序列化包含与关键字冲突的属性的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671044/