public static void ReadComplexClassIgnoresLeadingOrTrailingTrivia(string leadingTrivia, string trailingTrivia) { var options = new JsonSerializerOptions(); options.ReadCommentHandling = JsonCommentHandling.Skip; ClassWithComplexObjects obj = JsonSerializer.Deserialize <ClassWithComplexObjects>(leadingTrivia + ClassWithComplexObjects.s_json + trailingTrivia, options); obj.Verify(); }
public static void ReadClassWithComplexObjects() { ClassWithComplexObjects obj = JsonSerializer.Deserialize <ClassWithComplexObjects>(ClassWithComplexObjects.s_json); obj.Verify(); string reserialized = JsonSerializer.Serialize(obj); // Properties in the exported json will be in the order that they were reflected, doing a quick check to see that // we end up with the same length (i.e. same amount of data) to start. Assert.Equal(ClassWithComplexObjects.s_json.StripWhitespace().Length, reserialized.Length); // Shoving it back through the parser should validate round tripping. obj = JsonSerializer.Deserialize <ClassWithComplexObjects>(reserialized); obj.Verify(); }
public static void ReadComplexClassIgnoresLeadingOrTrailingTrivia(string leadingTrivia, string trailingTrivia) { var options = new JsonSerializerOptions(); options.ReadCommentHandling = JsonCommentHandling.Skip; ClassWithComplexObjects obj = JsonSerializer.Parse <ClassWithComplexObjects>(leadingTrivia + ClassWithComplexObjects.s_json + trailingTrivia, options); obj.Verify(); // Throws due to JsonDocument.TryParse not supporting Allow //var options = new JsonSerializerOptions(); //options.ReadCommentHandling = JsonCommentHandling.Allow; // //obj = JsonSerializer.Parse<ClassWithComplexObjects>(leadingTrivia + ClassWithComplexObjects.s_json + trailingTrivia, options); //obj.Verify(); }