using Iso8601DurationHelper;
class type { public string a { get; set; } }
public static void Main()
var systemTextJsonOptions = new System.Text.Json.JsonSerializerOptions(System.Text.Json.JsonSerializerDefaults.Web);
var emptyValue = new { a = (string)"" };
var nullValue = new { a = (string)null};
var withValue = new { a = (string)"a" };
Console.WriteLine("With value:");
Console.WriteLine("System.Text.Json: " + System.Text.Json.JsonSerializer.Serialize(withValue, systemTextJsonOptions));
Console.WriteLine("Newtonsoft.Json: " + Newtonsoft.Json.JsonConvert.SerializeObject(withValue));
Console.WriteLine("Empty value:");
Console.WriteLine("System.Text.Json: " + System.Text.Json.JsonSerializer.Serialize(emptyValue, systemTextJsonOptions));
Console.WriteLine("Newtonsoft.Json: " + Newtonsoft.Json.JsonConvert.SerializeObject(emptyValue));
Console.WriteLine("Null value:");
Console.WriteLine("System.Text.Json: " + System.Text.Json.JsonSerializer.Serialize(nullValue, systemTextJsonOptions));
Console.WriteLine("Newtonsoft.Json: " + Newtonsoft.Json.JsonConvert.SerializeObject(nullValue));
var emptyValueJson = "{ \"a\": \"\" }";
var nullValueJson = "{ \"a\": null }";
var withValueJson = "{ \"a\": \"a\" }";
Console.WriteLine("With value json:");
Console.WriteLine("System.Text.Json: " + (System.Text.Json.JsonSerializer.Deserialize<type>(withValueJson).a ?? "null"));
Console.WriteLine("Newtonsoft.Json: " + (Newtonsoft.Json.JsonConvert.DeserializeObject<type>(withValueJson).a ?? "null"));
Console.WriteLine("Empty value json:");
Console.WriteLine("System.Text.Json: " + (System.Text.Json.JsonSerializer.Deserialize<type>(emptyValueJson).a ?? "null"));
Console.WriteLine("Newtonsoft.Json: " + (Newtonsoft.Json.JsonConvert.DeserializeObject<type>(emptyValueJson).a ?? "null"));
Console.WriteLine("Null value json:");
Console.WriteLine("System.Text.Json: " + (System.Text.Json.JsonSerializer.Deserialize<type>(nullValueJson).a ?? "null"));
Console.WriteLine("Newtonsoft.Json: " + (Newtonsoft.Json.JsonConvert.DeserializeObject<type>(nullValueJson).a ?? "null"));