冲突有一个API,我没有控制权,但其输出我需要用C#消耗,最好使用JSON.Net。含有反序列化JSON响应属性以关键字
下面是一个例子回应:
[
{
"media_id": 36867,
"explicit": 0
}
]
我本来计划有一个类,像这样:
class Media {
public int media_id;
public int explicit;
}
和反序列化:
var l = JsonConvert.DeserializeObject<List<Media>>(s);
不幸的是, “明确的” 是一个C#关键字,所以这不能编译。
我的下一个猜测是修改类:
class Media {
public int media_id;
public int explicit_;
}
...并以某种方式映射响应属性到C#属性。
我应该怎么做,还是我完全在这个错误的方式去?
做不到这一点,我很确定,只是简单的忽略“明确”的回应,如果有一种方法可以做到这一点?
我明白你说什么,而是你可以提供一个链接到进一步的解释?我试过这种改变:“var x = new Media(); x.explicit = true;”不会编译,但“x。@ explicit = true”。 – 2011-01-12 17:03:07
在你的代码,你可以使用“@explicit”。但是这会被编译为二进制文件中的“显式”实际名称。所以JSON.Net序列化/反序列化代码会看到“显式”,而不是“@explicit”。就像在代码中使用“\ n”一样,但它会被编译成二进制文件中的换行符。 – 2011-01-12 17:32:05