C# – How to ignore a property in class if null, using json.net


I am using Json.NET to serialize a class to JSON.

I have the class like this:

class Test1
    public string ID { get; set; }
    public string Label { get; set; }
    public string URL { get; set; }
    public List<Test2> Test2List { get; set; }

I want to add a JsonIgnore() attribute to Test2List property only when Test2List is null. If it is not null then I want to include it in my json.

Best Solution

An alternate solution using the JsonProperty attribute:

// or
[JsonProperty("property_name", NullValueHandling=NullValueHandling.Ignore)]

// or for all properties in a class
[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]

As seen in this online doc.