我有一个JSON对象,其中包含一个名为@id的属性:
{"@id": "231"}
在我的对象中我试过了两个:
[DataMember(Name = "@id")]
public string id { get; set; }
和
public string @id { get; set; }
但是当我用json.net反序列化时,id总是为null:
JsonConvert.DeserializeObject<TestObc>(jsonString);
如何反序列化@id属性?
答案 0 :(得分:3)
尝试这样 -
class Root{
[JsonProperty("@id")]
public string id { get; set; }
}
测试 -
var json = "{'@id': '231'}";
var t = JsonConvert.DeserializeObject<Root>(json);
Console.WriteLine(t.id); //231
答案 1 :(得分:2)
将DataMember
更改为JsonProperty
确实有帮助,但如果您仍想使用DataMember
- 只需使用DataContract
属性装饰您的类本身(这可能是您可能忘记的)做):
[DataContract]
class YourClass {
[DataMember(Name = "@id")]
public string id { get; set; }
}