public static void EnumAsString() { var options = new JsonSerializerOptions(); options.AddAttribute(typeof(SimpleTestClass), new JsonEnumConverterAttribute(treatAsString: true)); SimpleTestClass obj = JsonSerializer.Parse <SimpleTestClass>(s_jsonStringEnum, options); Assert.Equal(SampleEnum.Two, obj.MyEnum); }
public static void OverridePropertyNameAndDesignTimeAttributeAtRuntime() { var options = new JsonSerializerOptions(); options.AddAttribute(typeof(OverridePropertyNameDesignTime_TestClass).GetProperty("MyInt16"), new JsonPropertyNameAttribute("blah2")); OverridePropertyNameDesignTime_TestClass x = JsonSerializer.Read <OverridePropertyNameDesignTime_TestClass>(OverridePropertyNameDesignTime_TestClass.s_dataNotMatchingAttribute, options); Assert.Equal(x.MyInt16, 1); }
public static void OverridePropertyNameAtRuntime() { var options = new JsonSerializerOptions(); options.AddAttribute(typeof(OverridePropertyNameRuntime_TestClass), new JsonPropertyNameAttribute("blah")); OverridePropertyNameRuntime_TestClass x = JsonSerializer.Read <OverridePropertyNameRuntime_TestClass>(OverridePropertyNameRuntime_TestClass.s_data, options); Assert.Equal(x.MyInt16, 1); }
public static void CamelCaseAttributeRuntime() { var options = new JsonSerializerOptions(); options.AddAttribute(typeof(SimpleTestClass), new JsonCamelCasingConverterAttribute()); SimpleTestClass obj = JsonSerializer.Read <SimpleTestClass>(SimpleTestClassWithCamelCase.s_data, options); Assert.Equal(obj.MyInt16, 1); }
public static void CamelCaseAttributeInheritanceRuntime() { var options = new JsonSerializerOptions(); // Add attibute to base class options.AddAttribute(typeof(SimpleTestClass), new JsonCamelCasingConverterAttribute()); SimpleDerivedTestClass obj = JsonSerializer.Parse <SimpleDerivedTestClass>(SimpleTestClassWithCamelCase.s_data, options); Assert.Equal(obj.MyInt16, 1); }
public static void OverrideWriteOnAttribute() { JsonSerializerOptions options = new JsonSerializerOptions(); JsonPropertyValueAttribute attr = new JsonPropertyValueAttribute(); attr.IgnoreNullValueOnWrite = true; options.AddAttribute(typeof(TestClassWithNull), attr); var input = new TestClassWithNull(); string json = JsonSerializer.ToString(input, options); Assert.Equal(@"{}", json); }
public static void OverrideReadOnAttribute() { JsonSerializerOptions options = new JsonSerializerOptions(); JsonPropertyAttribute attr = new JsonPropertyAttribute(); attr.SkipNullValuesOnRead = true; options.AddAttribute(typeof(TestClassWithNullButInitialized), attr); TestClassWithNullButInitialized obj = JsonSerializer.ReadString <TestClassWithNullButInitialized>(TestClassWithNullButInitialized.s_json, options); Assert.Equal("Hello", obj.MyString); Assert.Equal(1, obj.MyInt); }