对于反序列化,我通常使用与 JSon 和中找到的属性名称相同的对象JsonConvert.DeserializeObject<Des>(jsonstring)
.
但现在我遇到了这个:
{
"id": 0815,
"name": "whatever"
"addedInfo": {
"thisisinteresting": 4711,
"id_str": "2336"
}
}
我如何告诉 JSon.Net 将子类别的“thisisinteresting”部分拉入类中,例如:
class Des
{
int id;
string name;
int thisisinteresting;
}
最简单的方法是将您的类实际建模为 JSON 结构:
public class AddedInfo
{
public int thisisinteresting { get; set; }
public string id_str { get; set; }
}
public class RootObject
{
public int id { get; set; }
public string name { get; set; }
public AddedInfo addedInfo { get; set; }
}
然后向 RootObject 添加一个属性以发出该属性:
public class RootObject
{
public int id { get; set; }
public string name { get; set; }
public AddedInfo addedInfo { get; set; }
[JsonIgnore]
public int thisisinteresting { get { return addedInfo.thisisinteresting; } }
}
还有一些替代方案,例如创建自定义序列化器或使用 JObject 并自行反序列化结构,但我不会详细介绍。如果您无论如何都需要解析 JSON,则完全反序列化它的代价很小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)