Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Json.net DefaultValueHandling exempting boolean alone

Tags:

c#

json.net

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.

like image 721
Gokoulane Ravi Avatar asked May 31 '14 16:05

Gokoulane Ravi


1 Answers

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
}
like image 116
Ilija Dimov Avatar answered Nov 08 '22 11:11

Ilija Dimov