标题说明了一切:一个 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"]
关于path - jq:在未知输入结构深处按名称搜索属性并打印路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45345830/