1

是否可以使用xidel或其他命令行工具从文件中列出/生成所有JSON 指针?

我试过了

xidel test.json -e '$json()'

但它只列出顶级字段,而我想要一个像我得到的那样的递归列表xmlstarlet el -a

4

1 回答 1

1

您可以为此声明一个递归函数:

xidel test.json -e '
      declare function escape ($s) { replace(replace($s, "~", "~0"), "/", "~1") };
      declare function enum($v, $pointer) {
        typeswitch ($v) 
          case array()  return $v() ! enum(., $pointer || "/" || string(position() - 1))
          case object() return $v() ! enum($v(.), $pointer || "/" || escape(.))
          default       return $pointer
      };
      enum($json, "")
'
于 2016-06-18T14:55:13.207 回答