是否可以使用JSON Pointers或其他命令行工具列出/生成文件中的所有xidel?
我已经尝试了
xidel test.json -e '$json()'
但它只列出了顶级字段,而我想要一个递归列表,就像我用xmlstarlet el -a
得到的那样。
答案 0 :(得分: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, "")
'