JsonUtils { public static DocumentContext toJsonDoc(String raw) { return JsonPath.parse(raw); } private  JsonUtils(); static DocumentContext toJsonDocStrict(String raw); static DocumentContext toJsonDoc(String raw); static String toStrictJsonString(String raw); static String toJson(Object o); static Map removeCyclicReferences(Map map); static DocumentContext toJsonDoc(Object o); static Object fromJson(String s, String className); static T fromJson(String s, Class<T> clazz); static String toPrettyJsonString(DocumentContext doc); static String escapeValue(String raw); static Object nashornObjectToJavaJSON(Object jsObj); static void removeKeysWithNullValues(Object o); static StringUtils.Pair getParentAndLeafPath(String path); static void removeValueByPath(DocumentContext doc, String path); static void setValueByPath(DocumentContext doc, String path, Object value); static void setValueByPath(DocumentContext doc, String path, Object value, boolean remove); static boolean pathExists(DocumentContext doc, String path); static DocumentContext fromYaml(String raw); static DocumentContext fromCsv(String raw); static String toCsv(List<Map<String, Object>> list); static String buildPath(String parentPath, String key); static DocumentContext emptyJsonObject(); static DocumentContext emptyJsonArray(int length);  }
@Test public void testNonStrictJsonParsing() { String raw = "{ foo: 'bar' }"; DocumentContext dc = JsonUtils.toJsonDoc(raw); logger.debug("parsed json: {}", dc.jsonString()); String value = dc.read("$.foo"); assertEquals("bar", value); }
@Test public void testJsonArrayAsRoot() { String raw = "[1, 2, 3]"; DocumentContext doc = JsonUtils.toJsonDoc(raw); Object sec = doc.read("$[1]"); assertEquals(2, sec); }
@Test public void testJsonChunkByPath() { String raw = "[{ foo: 'bar' }]"; DocumentContext doc = JsonUtils.toJsonDoc(raw); Map map = doc.read("$[0]"); DocumentContext foo = JsonPath.parse(map); assertEquals("{\"foo\":\"bar\"}", foo.jsonString()); }