C# Json Examples
C# Basic
C# Data Type
C# OOP
C# IO
C# Graphics & UI
C# Advanced
To ignore null properties during JSON serialization using Json.NET, you can use the NullValueHandling
option with the value NullValueHandling.Ignore
. Here's an example:
public class Person { public string Name { get; set; } public int Age { get; set; } public string Address { get; set; } } Person person = new Person { Name = "John", Age = 30 }; string json = JsonConvert.SerializeObject(person, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); Console.WriteLine(json);
In this example, the Address
property is null, but it will be ignored during serialization, and won't be included in the resulting JSON.
To set a null property with a default empty value during JSON serialization using Json.NET, you can use the DefaultValueHandling
option with the value DefaultValueHandling.Empty
. Here's an example:
public class Person { public string Name { get; set; } public int Age { get; set; } public string Address { get; set; } } Person person = new Person { Name = "John", Age = 30, Address = null }; string json = JsonConvert.SerializeObject(person, Formatting.Indented, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Populate, NullValueHandling = NullValueHandling.Include }); Console.WriteLine(json);
In this example, the Address
property is null, but it will be serialized with a default empty value, and will be included in the resulting JSON. Note that we also set NullValueHandling
to Include
to include the null values in the JSON.
C# JSON serialize null properties:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person);
Json.NET serialize null properties example:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person);
Include null properties in JSON serialization C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include });
Serialize null values in C# JSON:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
C# Newtonsoft.Json serialize null property:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person);
Handling null properties during JSON serialization in C#:
public class Person { public string Name { get; set; } private int? _age; public int? Age { get { return _age; } set { _age = value ?? -1; } } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person);
JsonSerializerSettings NullValueHandling C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; var jsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; string jsonString = JsonConvert.SerializeObject(person, jsonSettings);
Serialize C# object with nullable properties to JSON:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include });
C# JSON.NET serialize null property to JSON string:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person);
Include null properties in JSON output using JsonConvert in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include });
Newtonsoft.Json JsonNullValueHandling setting in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; var jsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore }; string jsonString = JsonConvert.SerializeObject(person, jsonSettings);
Handling null properties with DataContractJsonSerializer in C#:
[DataContract] public class Person { [DataMember] public string Name { get; set; } [DataMember] public int? Age { get; set; } }
C# JSON serialization with null properties and DefaultValueAttribute:
public class Person { public string Name { get; set; } [DefaultValue(-1)] public int? Age { get; set; } }
Serialize object with null properties using JsonConverter in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } public class NullablePropertyConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var jsonObject = JObject.FromObject(value); jsonObject.PropertyValues() .Where(p => p.Value.Type == JTokenType.Null) .ToList() .ForEach(p => p.Remove()); jsonObject.WriteTo(writer); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { throw new NotImplementedException(); } public override bool CanRead => false; public override bool CanConvert(Type objectType) { return true; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person, new NullablePropertyConverter());
Include null properties in JSON using System.Text.Json in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; var jsonSerializerOptions = new JsonSerializerOptions { DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull }; string jsonString = JsonSerializer.Serialize(person, jsonSerializerOptions);
JsonSerializer.NullValueHandling property in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; var jsonSerializer = new JsonSerializer { NullValueHandling = NullValueHandling.Include }; string jsonString = JsonConvert.SerializeObject(person, jsonSerializer);
Serialize object with null properties using custom contract resolver in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; var jsonSettings = new JsonSerializerSettings { ContractResolver = new NullablePropertyContractResolver() }; string jsonString = JsonConvert.SerializeObject(person, jsonSettings);
Handling null properties with JsonIgnoreAttribute in C#:
public class Person { public string Name { get; set; } [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public int? Age { get; set; } } var person = new Person { Name = "John", Age = null }; string jsonString = JsonConvert.SerializeObject(person);
Serialize object with null properties to JSON array in C#:
public class Person { public string Name { get; set; } public int? Age { get; set; } } var people = new List<Person> { new Person { Name = "John", Age = null }, new Person { Name = "Jane", Age = 25 } }; string jsonArray = JsonConvert.SerializeObject(people);