【问题标题】:Newtonsoft JsonProperty SerializationNewtonsoft Json属性序列化
【发布时间】:2018-03-09 19:41:08
【问题描述】:

我正在使用 Newtonsoft JsonProperty 属性将一些丑陋的 Json 数据反序列化到我的类中,如下所示:

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

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

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

【问题讨论】:

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


    【解决方案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()  
                                                  });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      相关资源
      最近更新 更多