public static void JsonPropertyNameAttribute() { { OverridePropertyNameDesignTime_TestClass obj = JsonSerializer.Deserialize <OverridePropertyNameDesignTime_TestClass>(@"{""Blah"":1}"); Assert.Equal(1, obj.myInt); obj.myObject = 2; string json = JsonSerializer.Serialize(obj); Assert.Contains(@"""Blah"":1", json); Assert.Contains(@"""BlahObject"":2", json); } // The JsonPropertyNameAttribute should be unaffected by JsonNamingPolicy and PropertyNameCaseInsensitive. { var options = new JsonSerializerOptions(); options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; options.PropertyNameCaseInsensitive = true; OverridePropertyNameDesignTime_TestClass obj = JsonSerializer.Deserialize <OverridePropertyNameDesignTime_TestClass>(@"{""Blah"":1}", options); Assert.Equal(1, obj.myInt); string json = JsonSerializer.Serialize(obj); Assert.Contains(@"""Blah"":1", json); } }
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 OverridePropertyNameAtDesignTime() { OverridePropertyNameDesignTime_TestClass x = JsonSerializer.Read <OverridePropertyNameDesignTime_TestClass>(OverridePropertyNameDesignTime_TestClass.s_dataMatchingAttribute); Assert.Equal(x.MyInt16, 1); }
public static void OverridePropertyNameAndDesignTimeAttributeAtRuntimeIgnoresNonMatch() { OverridePropertyNameDesignTime_TestClass x = JsonSerializer.Parse <OverridePropertyNameDesignTime_TestClass>(OverridePropertyNameDesignTime_TestClass.s_dataNotMatchingAttribute); Assert.Equal(x.MyInt16, 0); }