标题说明了一切:jq程序接受一个输入JSON文档,我只是模糊地熟悉其结构,我希望它打印其中具有特定名称的所有属性的路径。
假设您要查找具有名为"b"的键的对象的路径。一种方法是使用路径(对象(,如下所示:
def data: {a:{b:1,c:{b:2}}};
data
| paths(objects | has("b") )
或者效率稍高:
data
| paths
| select( .[-1] == "b" )
| .[:-1]
调用: jq -n -c -f program.jq
输出:
["a"]
["a","c"]
这里有一个较老的问题,但这在很大程度上是我的典型用例。
有关此特定类型问题的解决方案,请参阅:
https://github.com/TomConlin/json_to_paths
用法例如json2jqpath.jq file.json | grep "certain_name"
基本上将任意 .json 文件简化为
其中可寻址路径的完整列表。
还允许转换为类似xml-xpath的字符串
并创建json结构的GraphVis渲染。
?
数组附加到
[]
中,以使它们成为可选的。新版本在大多数情况下都能解决