衝突有一個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