有许多针对JSON的查询语言,比如JMES路径和JSON路径,但是我发现的这些语言中没有一种让我感兴趣,例如JSON路径不允许多选查询(我不能返回具有不同类型元素汽车、飞机、船的列表),而且JMES路径比JSON路径更简单,允许多选,但不允许访问父节点,比如..或parent(@)或$(表示源)。所以我想要一种可以做这两件事的语言,如果有可能像JMES路径一样简单的查询语言,但是如果只有一种并且它是最难的一种,我会选择它!
附言:我是用javascript工作的!
发布于 2019-06-04 08:45:35
jq是一种JSON查询语言,与JSONPath有一些相似之处,但具有图灵完全编程语言的全部通用性。jq
包含了所有的JSON,并且它的许多构造都类似于JSON。对JSON数组的形成没有限制。
在jq中处理涉及“父项”和“子项”的问题的方法之一是使用jq路径,jq路径就是JSON数组,其所有元素都是JSON字符串(对应于键名)或整数(对应于数组的索引)。因此,如果$p
是指向某个JSON文档的某个子组件的路径,那么指向其父组件的路径就是$p[:-1]
。
然而,在实践中,许多涉及父母和/或孩子的问题可以在不使用完整路径的情况下更容易地解决。特别要注意的是,to_entries
既可以用于JSON对象,也可以用于JSON数组。
资源
main website包括教程、手册和维基,维基有常见问题解答、食谱、“语言描述”和面向JSONPath用户的指南。
在stackoverflow上,目前有超过2,000个问题带有jq标签。另请参阅http://rosettacode.org/wiki/Category:Jq
https://stackoverflow.com/questions/56435383
复制相似问题