Newtonsoft JsonProperty 序列化

Newtonsoft JsonProperty Serialization

我正在使用 Newtonsoft Json属性 属性将一些难看的 Json 数据反序列化到我的 class 中,如下所示:

[JsonProperty("1. open")]
public decimal Open { get; set; }
[JsonProperty("2. high")]
public decimal High { get; set; }

因此“1.open”和“2.high”被解析为 Open 和 High 属性等。

我想将这些Json属性仅用于反序列化,这可能吗?如果我要将此数据序列化回 Json,我希望得到这样的结果:{ Open: 0.00, High: 0.00 }

您可以创建一个 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()  
                                              });