我正在用Java编写一个JSON样式的查询引擎,它将受益于通过DOM路径查询JSON文档的能力(就像你可以在Javascript中一样)。我已经检查过GSON和Jackson,但似乎都不支持这个。
任何人都知道任何替代方案或其他建议,而不是自己推荐?
e.g。
//Example JSON document
String json = "{ somewhere : {deep : { inside : 123 } }, anarray : [{val=1}] }";
JsonElement root = JsonParser.parse(json);
//What I'd like:
JsonElement node = root.getByDOM("somewhere.deep"); // {inside : 123}
JsonElement node2 = root.getByDOM("somewhere.deep.inside"); // 123
JsonElement node3 = root.getByDOM("anarray[0].val"); // 1
//etc
答案 0 :(得分:0)
杰克逊绝对支持这一点(参见“Jackson in 5 minutes”,寻找“树模式”)例如:
JsonNode root = mapper.readTree(jsonSource);
我认为GSON也有类似的东西。
但无论你做什么,都不要尝试将JSON转换为XML,然后使用XML工具 - 这种路径通常会给你带来很多麻烦,除了缓慢之外。这是因为JSON和XML数据模型从根本上是不兼容的。
答案 1 :(得分:0)
随着json-path走了 - 感谢brian的建议。