Json.net DefaultValueHandling exempting boolean alone

左心房为你撑大大i 提交于 2020-01-19 16:25:09

问题


While serializing using json.net i used DefaultValueHandling.Ignore in serialization settings, which result in removal of key if the bool is set false. I want that to be exempted for type bool alone, and apply for other types and classes. Please help

Thanks in advance.


回答1:


DefaultValueHandling.Ignore in serialization settings can be overridden by decorating any property with [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)] attribute. Here is the class:

public class Person
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
    public bool IsEmployed { get; set; }
}

Lets say that we have the following sample:

var person = new Person
            {
                FirstName = "John",
                IsEmployed = false
            };

var json = JsonConvert.SerializeObject(person, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });

Will result in following json:

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


来源:https://stackoverflow.com/questions/23973056/json-net-defaultvaluehandling-exempting-boolean-alone

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!