JsonPathForge

JSONPath 实时求值 · 递归下降 / 切片 / 联合 / 过滤器(&& || =~)· 规范化路径 —— 单文件 / 零依赖 / 离线可用
$.store.book[*].author $..author $.store.* $.store..price $..book[2] $..book[-1] $..book[:2] $..book[?(@.isbn)] $..book[?(@.price < 10)] $..book[?(@.category == 'fiction' && @.price < 10)] $..book[?(@.author =~ /tolkien/i)] $..*
语法含义
$根对象
.name / ['name']子属性(点或方括号记法)
..name递归下降:任意深度的属性 name
* / [*]通配:全部子成员 / 全部数组元素
..*递归通配:全部成员(任意深度)
[n] / [-n]数组下标(支持负数从尾部计)
[0,2] / ['a','b']联合:多下标 / 多属性名
[start:end:step]切片(Python 语义,支持负数与负 step)
[?(@.x)]过滤器:存在属性 x 的元素
[?(@.x op v)]比较:== != < <= > >= ,v 为字符串/数字/布尔/null
[?(@.x =~ /re/i)]正则匹配(字符串属性)
[?(A && B || C)]逻辑组合(&& 优先于 ||,支持括号)
[?(@ > 3)]标量数组元素直接比较
输出为规范化路径($['store']['book'][0])+ 对应值;语义对齐 Goessner 原始提案。