public static void ConverterNotCalled_IgnoreNullValues() { var options = new JsonSerializerOptions(); options.Converters.Add(new UriNullConverter_NullOptIn()); // Converter is not called. ClassWithIgnoredUri obj = JsonSerializer.Deserialize <ClassWithIgnoredUri>(@"{""MyUri"":null}", options); Assert.Equal(new Uri("https://microsoft.com"), obj.MyUri); obj.MyUri = null; Assert.Equal("{}", JsonSerializer.Serialize(obj, options)); }
public static void ConverterNotCalled_IgnoreNullValues() { var options = new JsonSerializerOptions(); options.Converters.Add(new UriNullConverter_NullOptIn()); // Converter is called - JsonIgnoreCondition.WhenWritingDefault does not apply to deserialization. ClassWithIgnoredUri obj = JsonSerializer.Deserialize <ClassWithIgnoredUri>(@"{""MyUri"":null}", options); Assert.Equal(new Uri("https://default"), obj.MyUri); obj.MyUri = null; // Converter is not called - value is ignored on serialization. Assert.Equal("{}", JsonSerializer.Serialize(obj, options)); }