path - jq:在未知输入结构深处按名称搜索属性并打印路径

标签 path jq

标题说明了一切:一个 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/

相关文章:

json - 获取 jq json 解析中的第一个(或第 n 个)元素

objective-c - Cocoa/Objective-C 获取一个 HFS 路径(路径 :to:desktop) from a posix path (path/to/desktop)

javascript - 如何在谷歌地图中加入所有带有路径的标记?

json - "Argument list too long"吞吐 JSON 文件时

json - 使用 jq 将数字字节值数组转换为字符串

json - JQ:计算每组对象的数量,对于输入的一个子集

jq - 解析多个 json 文件并输出针对具有关联文件名的正则表达式的匹配/命中

windows - 通过批处理从 %path% 变量中删除不需要的路径名

variables - IntelliJ 更新路径变量

android - android-getpath方法返回错误的地址