说我有一个JSON:
{
"aaa": 111,
"bbb":222,
"ccc": {
"mmm": 333,
"nnn": 444
}
}
是否有任何工具可以输出从根到每个节点的所有路径?所以我可以得到一个路径列表:
aaa
bbb
ccc/mmm
ccc/nnn
答案 0 :(得分:1)
只输出路径的工具可能不存在。这样的工具在现实世界中几乎没有用处。
然而,有些工具可以产生这样的结果。例如jq
可以通过以下过滤器相对轻松地完成此操作:
def dump_paths(name): name as $name |
(objects | to_entries[] | "\($name)/\(.key)" as $key | .value | dump_paths($key)) //
(arrays | to_entries[] | "\($name)[\(.key)]" as $key | .value | dump_paths($key)) //
$name
;
dump_paths("")
它会产生以下字符串:
/aaa
/bbb
/ccc/mmm
/ccc/nnn