Fix null values handling in C# Json serialization

It didn't replace prefab object reference if replaced with null in the prefab instance.
This commit is contained in:
Wojtek Figat
2021-08-19 13:03:54 +02:00
parent 4c1dbb7f8e
commit a8c7705c3b
3 changed files with 11 additions and 6 deletions

View File

@@ -47,15 +47,15 @@ namespace FlaxEngine.Tests
{
ObjectOne obj = new ObjectOne();
Assert.AreEqual("{\n\t\"MyValue\": 0.0,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t}\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
Assert.AreEqual("{\n\t\"MyValue\": 0.0,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t},\n\t\"MyArray\": null\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
obj.MyValue = 1.2f;
Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t}\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 0.0\n\t},\n\t\"MyArray\": null\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
obj.MyVector.Y = 2.0f;
Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 2.0\n\t}\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
Assert.AreEqual("{\n\t\"MyValue\": 1.2,\n\t\"MyVector\": {\n\t\t\"X\": 0.0,\n\t\t\"Y\": 2.0\n\t},\n\t\"MyArray\": null\n}", FilterLineBreak(JsonSerializer.Serialize(obj)));
obj.MyArray = new[]
{