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