public Node deserializeObject(JsonReader reader) {
        Log.info("Deserializing JSON to Node.");
        JsonObject jsonObject = reader.readObject();
        return deserializeObject(jsonObject);
    }
@Test
    void testNonMetaProperties() {
        CompilationUnit cu = parse("public class X{} class Z{}");
        String serialized = serialize(cu, false);

        CompilationUnit deserialized =
                (CompilationUnit) deserializer.deserializeObject(Json.createReader(new StringReader(serialized)));

        assertTrue(deserialized.hasRange());
        Range range = deserialized.getRange().get();
        assertEquals(1, range.begin.line);
        assertEquals(1, range.begin.line);
        assertEquals(26, range.end.column);

        assertTrue(deserialized.getTokenRange().isPresent());
        TokenRange tokenRange = deserialized.getTokenRange().get();
        assertEquals("public", tokenRange.getBegin().getText());
        assertEquals("", tokenRange.getEnd().getText());
    }