JSONPath 提取

给一段 JSON 和一条 JSONPath 表达式,取出目标节点,调接口时比临时写脚本快。

支持的语法

$ 代表整个文档。.key 取字段,字段名含特殊字符时写成 ['key']。[0] 取下标,[-1] 取最后一个,[0:2] 是切片,也可以写 [start:end:step]。[*] 和 .* 取全部子节点,['a','b'] 或 [0,2] 一次取多个。

..key 是递归下降,会在任意深度上找这个字段,..* 则遍历所有后代。过滤写成 [?(...)],@ 代表当前节点,可以用 @.price 或 @['price'] 取字段,配合 ==、!=、<、<=、>、>=、=~ 正则匹配,以及 &&、||、! 组合条件。

只写了字段名不带比较时,表示「存在这个字段」,所以 [?(@.isbn)] 就是筛出有 isbn 的书。过滤会作用在数组元素上;对象用过滤时按每个值判断。本页在浏览器本地解析和求值,数据不会上传。