支持DOM样式访问的Java JSON库

时间:2012-12-10 06:28:10

标签: java javascript json jackson gson

我正在用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

2 个答案:

答案 0 :(得分:0)

杰克逊绝对支持这一点(参见“Jackson in 5 minutes”,寻找“树模式”)例如:

JsonNode root = mapper.readTree(jsonSource);

我认为GSON也有类似的东西。

但无论你做什么,都不要尝试将JSON转换为XML,然后使用XML工具 - 这种路径通常会给你带来很多麻烦,除了缓慢之外。这是因为JSON和XML数据模型从根本上是不兼容的。

答案 1 :(得分:0)

随着json-path走了 - 感谢brian的建议。