是否有任何工具可以将根路径输出到JSON的每个节点?

时间:2015-06-19 07:08:44

标签: json

说我有一个JSON:

{
  "aaa": 111,
  "bbb":222,
  "ccc": {
    "mmm": 333,
    "nnn": 444
  }
}

是否有任何工具可以输出从根到每个节点的所有路径?所以我可以得到一个路径列表:

aaa
bbb
ccc/mmm
ccc/nnn

1 个答案:

答案 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