是否可以使用 JsonProperty 注释将嵌套的 Json 属性映射到非嵌套的 .NET 成员?假设你有一些这样的 Json:
{
"id":9999,
"created_date":"Thu, 23 Jun 2011 12:56:24 +0000",
"pos":{
"type":"someType",
"coordinates":[
59.323,
18.0654
]
}
}
并希望将其反序列化为扁平类 MyClass 使用
JsonConvert.DeserializeObject<MyClass>(jsonstr);
下面的类中是否可以使用注解将Json坐标列表映射到Lat和Lng:
public class MyClass {
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("created_date")]
public DateTime Created { get; set; }
[JsonProperty("????")]
public float Lat { get; set; }
[JsonProperty("?????")]
public float Lng { get; set; }
}
只是好奇。我总是可以像这样定义类,它似乎工作正常:
public class MyClass {
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("date_created")]
public DateTime Created { get; set; }
[JsonProperty("pos")]
public PosClass Pos { get; set; }
}
public class PosClass
{
public List<float> coordinates { get; set; }
}
最佳答案
根据个人经验,在尝试重新使用我的实体进行通信(JSON、XML ... 等)之前,我很挣扎,但在仔细关注现有模式后,我发现有 "data transfer objects"除了您已经拥有的内部/存储实体之外,您还可以解放我的通信模型,而我支付的唯一成本是接受在两者之间进行手动但直接的手动编码转换。
如果您宁愿坚持现有的并且性能不是什么大问题,那么 .NET 反射就是您的 friend 。
https://stackoverflow.com/questions/6462148/