public static void MultipleConvertersInObjectArray() { const string expectedJson = @"[""?"",{""TypeDiscriminator"":1,""CreditLimit"":100,""Name"":""C""},null]"; var options = new JsonSerializerOptions(); options.Converters.Add(new MyBoolEnumConverter()); options.Converters.Add(new PersonConverterWithTypeDiscriminator()); Customer customer = new Customer(); customer.CreditLimit = 100; customer.Name = "C"; MyBoolEnum myBoolEnum = MyBoolEnum.Unknown; MyBoolEnum?myNullBoolEnum = null; string json = JsonSerializer.Serialize(new object[] { myBoolEnum, customer, myNullBoolEnum }, options); Assert.Equal(expectedJson, json); JsonElement jsonElement = JsonSerializer.Deserialize <JsonElement>(json, options); string jsonElementString = jsonElement.ToString(); Assert.Equal(expectedJson, jsonElementString); }
public static void CustomEnumConverter() { var options = new JsonSerializerOptions(); options.Converters.Add(new MyBoolEnumConverter()); { MyBoolEnum value = JsonSerializer.Deserialize <MyBoolEnum>(@"""TRUE""", options); Assert.Equal(MyBoolEnum.True, value); Assert.Equal(@"""TRUE""", JsonSerializer.Serialize(value, options)); } { MyBoolEnum value = JsonSerializer.Deserialize <MyBoolEnum>(@"""FALSE""", options); Assert.Equal(MyBoolEnum.False, value); Assert.Equal(@"""FALSE""", JsonSerializer.Serialize(value, options)); } { MyBoolEnum value = JsonSerializer.Deserialize <MyBoolEnum>(@"""?""", options); Assert.Equal(MyBoolEnum.Unknown, value); Assert.Equal(@"""?""", JsonSerializer.Serialize(value, options)); } }