Newtonsoft JsonProperty序列化

时间:2018-03-09 19:41:08

标签: c# json serialization json.net json-deserialization

我正在使用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}

1 个答案:

答案 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()  
                                              });