Json.net DefaultValueHandling exempting boolean alone

c#, json.net

Solution

`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
}

Problem

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.

Original source