我正在使用Newtonsoft JsonProperty属性将一些丑陋的Json数据反序列化到我的类中,如下所示:
[JsonProperty("1. open")]
public decimal Open { get; set; }
[JsonProperty("2. high")]
public decimal High { get; set; }
所以" 1。开放"和" 2。高"被解析为Open和High属性等。
我想只使用这些JsonProperties进行反序列化,这可能吗?如果我要将这些数据序列化回Json,我希望得到这样的结果:{Open:0.00,High:0.00}
答案 0 :(得分:1)
您可以创建 ContractResolver ,如下所示
public class MyConractResolver: DefaultContractResolver
{
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
var p = base.CreateProperty(member, memberSerialization);
p.PropertyName = member.Name;
return p;
}
}
并将其用于序列化
var json = JsonConvert.SerializeObject(myobj, new JsonSerializerSettings() {
ContractResolver = new MyConractResolver()
});