json - 如何使用 jq 列出深层嵌套 json 中的所有键?

标签 json jq

我正在解析一个非常大的多层嵌套的 JSON。 所以我想找到嵌套 json 中的所有键。

我做了什么:

nsadmin@machine:~/$ jq 'keys' 474.json
[
  "x",
  "y",
  "t",
  "report"
]

我得到的是顶级键,但我的报告键有一个多级嵌套的值。那么有没有办法使用 Jq 打印此嵌套 JSON 中的所有键?

最佳答案

使用过滤器获取输入中所有元素的所有路径,并使用 join 将它们连接起来。您还可以强制字符串转换以避免连接数字时出现错误。

paths | map(tostring) | join(".")

paths 输出其输入中所有元素的路径(除了它不输出代表 . 本身的空列表)。

关于json - 如何使用 jq 列出深层嵌套 json 中的所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50944224/

相关文章:

json - 优化 JaxRS/Jackson 以排除空值、空列表、数组

javascript - Javascript 中变量不断变成对象而不是数组

json - 使用 jq 使用来自另一个文件的值替换 JSON 中的值

json - 使用 JQ 的多个过滤器

json - 将 JSON 拆分为多个文件

mysql - Rails 使用 SQL group_by

javascript - 对 JSON 编码错误以及 JS 和 PHP 之间的差异感到疯狂

javascript - JSON.parse 不将字符串转换为对象

python - 有没有办法从python执行jq

json - 如何在 json 文件上使用 jq 过滤器时限制缩进