using System.Text.Json.Serialization;
public static void Main()
var options = new JsonSerializerOptions();
options.Converters.Add(new EmptyStringToNullConverter());
options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
Console.WriteLine(JsonSerializer.Serialize(new Test(), options));
public string NameNull {get; set;} = null;
[JsonIgnore( Condition = JsonIgnoreCondition.WhenWritingDefault)]
public string NameEmpty {get; set;} = "";
public string NameOne {get; set;} = "One";
public class EmptyStringToNullConverter : JsonConverter<string>
public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
return reader.GetString();
public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
if(!string.IsNullOrEmpty(value)) writer.WriteStringValue(value);