如何递归打印jq中所有key的路径

问题描述 投票:0回答:1

我想获取 JSON 文档中所有可用路径的列表。

这个问题有多种变体,例如“与给定模式匹配的所有路径”或“打印路径加值”。

json jq
1个回答
0
投票

使用

jq -r 'path(..) | join(".")'

例如:

$ echo '{"k1": "v1", "k2": {"k21": "v21"}, "k3": {"k31": {"k311": "v311"}}, "k4": [{"k41": "v41"}, {"k42": "v42"}]}' | jq -r 'path(..) | join(".")'
k1
k2
k2.k21
k3
k3.k31
k3.k31.k311
k4
k4.0
k4.0.k41
k4.1
k4.1.k42

$ jq --version
jq-1.7.1

来源:github中的一条消息

© www.soinside.com 2019 - 2024. All rights reserved.