public void TestCreateFromObjectWithCircularRefs() { json_ParentClass obj1 = new json_ParentClass(); json_ParentClass obj2 = new json_ParentClass(); json_ParentClass obj3 = new json_ParentClass(); obj1.Id = "A"; obj2.Id = "B"; obj3.Id = "C"; obj1.Children = new [] { new json_ChildClass { Id = "A1", Parent = obj1, Others = new [] { obj1, obj2, obj3 } } }; var json = new JsonObject(obj1); Assert.That(json["Id"].Value, Is.EqualTo("A")); Assert.That(json["Children"][0]["Id"].Value, Is.EqualTo("A1")); Assert.That(json["Children"][0]["Parent"].IsNull); // circular reference Assert.That(json["Children"][0]["Others"][0].IsNull); // circular reference Assert.That(json["Children"][0]["Others"][1].IsObject); Assert.That(json["Children"][0]["Others"][2].IsObject); }
public void TestCircularReferences() { json_ParentClass obj1 = new json_ParentClass(); json_ParentClass obj2 = new json_ParentClass(); obj1.Id = "A"; obj2.Id = "B"; obj1.Children = new List <json_ChildClass>() { new json_ChildClass { Id = "A1", Parent = obj1, Others = new List <json_ParentClass>() { obj1, obj2 } } }; string json = JsonSerializer.ToJson(obj1); Assert.AreEqual("{\"Id\":\"A\",\"Children\":[{\"Id\":\"A1\",\"Parent\":null,\"Others\":[null,{\"Id\":\"B\",\"Children\":null}]}]}", json); }
public void TestCircularReferences() { json_ParentClass obj1 = new json_ParentClass(); json_ParentClass obj2 = new json_ParentClass(); obj1.Id = "A"; obj2.Id = "B"; obj1.Children = new List<json_ChildClass>() { new json_ChildClass { Id = "A1", Parent = obj1, Others = new List<json_ParentClass>() { obj1,obj2 } } }; string json = JsonSerializer.ToJson(obj1); Assert.AreEqual("{\"Id\":\"A\",\"Children\":[{\"Id\":\"A1\",\"Parent\":null,\"Others\":[null,{\"Id\":\"B\",\"Children\":null}]}]}",json); }