是否有一种允许访问父节点并具有多选功能的 JSON 查询语言?

bos*_*972 3 json jsonpath jmespath

JSON 有很多查询语言,例如 JMES Path 和 JSON Path,但我发现的没有一个让我感兴趣,例如 JSON Path 不允许多选查询(我无法返回具有不同类型元素的列表 [汽车、飞机、船])和 JMES 路径与 JSON 路径相比确实更简单,并且允许多选,但不允许访问父节点,例如 .. 或parent(@) 或 $(对于源)。所以我想要一种可以同时完成这两个任务的语言,如果可能有一种像 JMES Path 这样简单的查询语言,但如果只有一种并且是最困难的一种,那没关系,我会接受它!

PS:我用javascript工作!

pea*_*eak 5

是一种 JSON 查询语言,与 JSONPath 有一些相似之处,但具有图灵完备编程语言的全部通用性。jq包含所有 JSON,并且它的许多构造都类似于 JSON。JSON 数组的构成没有限制。

在 jq 中处理涉及“父母”和“孩子”的问题的方法之一是使用 jq 路径,这些路径只不过是 JSON 数组,其所有元素都是 JSON 字符串(对应于键名)或整数(对应于键名称)。到数组的索引)。因此,如果$p是 JSON 文档某个子组件的路径,那么其父组件的路径就是$p[:-1]

但在实践中,许多涉及父母和/或孩子的问题可以在不使用完整路径的情况下更容易解决。请特别注意,它to_entries可以与 JSON 对象和 JSON 数组一起使用。

资源

网站包括教程、手册和 Wiki,其中包含常见问题解答、Cookbook、“语言描述”和 JSONPath 用户指南。

在 stackoverflow 上,目前有超过 2,000 个带有标签的问题。另请参阅http://rosettacode.org/wiki/Category:Jq