我有一个这样的课程:
public class Event
{
[JsonProperty(PropertyName = "_id")]
public string Id { get; set; }
[JsonProperty(PropertyName = "status"]
public string Status { get; set; }
}
我收到的JSON看起来像这样:
[
{
"_id": 4,
"status": "started"
},
{
"_id": 117841261,
"status": {
"_statusid": 1,
"date": "01.01.2015"
}
}
]
请注意:在第一个对象中,状态字段是字符串。在第二个对象中,它是对象。在我的对象中,它是 string 属性。我想在状态字段是字符串时解析它。当它像第二个对象那样的对象时,我可以跳过它。
我尝试更改defaultValueHanding
属性中的JsonProperty
选项,但它没有帮助。有没有办法实现这个目标?
答案 0 :(得分:0)
我已经解决了将属性类型转换为动态的问题。所以每次都没有问题地反序列化,我只在需要的时候使用它。
现在我的模型看起来像这样:
public class Event
{
[JsonProperty(PropertyName = "_id")]
public string Id { get; set; }
[JsonProperty(PropertyName = "status"]
public dynamic Status { get; set; }
}
正如Brian Rogers所指出的,可以在这里找到自定义转换器:
How to deserialize a JSON property that can be two different data types using Json.NET