JSON 与数据处理指南
JSONPath 数组筛选:查出需要的记录
通过价格过滤和字段选择,理解数组查询、缺失路径与 null 的区别。
先定位根节点
美元符号表示文档根节点,通配符选择子节点,具名片段选择对象的属性。
先用两个不同价格的记录验证路径,再换成实际结构,避免把嵌套层级错误当成过滤问题。
{"items":[{"sku":"A","price":9},{"sku":"B","price":15}]}
$.items[*].sku → ["A","B"]先筛选再取字段
过滤条件逐个检查候选元素,@ 表示当前元素,price 从当前对象读取。
下面只选出 A;响应如果在外面包了一层 data,应修改路径层级而非价格条件。
$.items[?(@.price < 10)].sku → ["A"]缺失不等于 null
不存在的属性不会为查询贡献节点,值为 null 的属性仍然存在。
结果为空可能是路径错误、记录未满足条件或字段缺失,用树形视图检查一个候选对象即可区分。
确认实现方言
RFC 9535 定义标准 JSONPath,库也可能提供扩展;本站使用 JSONPath Plus,通过测试不代表所有后端都兼容。
把查询和样例一起保存,迁移前检查空数组、缺失字段、嵌套数组,并在目标库中复测。