【问题标题】:Json.net DefaultValueHandling exempting boolean aloneJson.net DefaultValueHandling 单独排除布尔值
【发布时间】:2014-07-21 07:16:33
【问题描述】:

在使用 json.net 进行序列化时,我在序列化设置中使用了 DefaultValueHandling.Ignore,如果 bool 设置为 false,则会导致键被删除。我希望仅对 bool 类型豁免,并申请其他类型和类。请帮忙

提前致谢。

【问题讨论】:

    标签: c# json.net


    【解决方案1】:

    序列化设置中的DefaultValueHandling.Ignore 可以通过使用[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)] 属性装饰任何属性来覆盖。这是课程:

    public class Person
    {
        public string FirstName { get; set; }
    
        public string LastName { get; set; }
    
        [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
        public bool IsEmployed { get; set; }
    }
    

    假设我们有以下示例:

    var person = new Person
                {
                    FirstName = "John",
                    IsEmployed = false
                };
    
    var json = JsonConvert.SerializeObject(person, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });
    

    将产生以下json:

    {
        "FirstName": "John",
        "IsEmployed": false
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      相关资源
      最近更新 更多