2

我正在用 Java 编写一个 JSON 样式的查询引擎,它将受益于通过 DOM 路径查询 JSON 文档的能力(就像你可以在 Javascript 中做的那样)。我已经检查了 GSON 和 Jackson,但似乎都不支持这一点。

任何人都知道任何替代方案或其他建议而不是我自己的建议吗?

例如

//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
4

2 回答 2

0

Jackson 绝对支持这一点(参见“ Jackson in 5 minutes ”,寻找“Tree mode”),例如:

JsonNode root = mapper.readTree(jsonSource);

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

但无论您做什么,都不要尝试将 JSON 转换为 XML,然后使用 XML 工具——这种方法通常会给您带来很多麻烦,不仅速度慢。这是因为 JSON 和 XML 数据模型根本上是不兼容的。

于 2012-12-10T19:55:25.780 回答
0

使用 json-path - 感谢 brian 的建议。

于 2012-12-11T05:55:26.800 回答