Neatbo.

用嵌套存在性筛选保留外层项目

用嵌套存在性检查选出外层记录,并保留所有有序匹配、重复选取与 JSON 值原文。

用嵌套存在性筛选保留外层项目

递归选取 identifiers 的查询会返回 identifier 对象。若要交付完整外层记录,应在外层列表筛选时检查嵌套筛选是否存在结果。来源回答与作者评论确认了内部对象结果;保留外层项目的表达式是另行实际验证的修正。

检验完整流程

修正查询语法,或减少输出/解析工作量。不要把返回多个节点的通配查询直接用于比较;嵌套数组可用存在性筛选。

  • 先确定接收者需要内部 identifier,还是完整外层记录。
  • 需要外层记录时,在外层列表筛选中使用嵌套存在性表达式。
  • 交付数组前核对匹配路径与完整值。
  • 保留重复选取;没有记录匹配时保留完整空数组。

保留所需层级的记录

原帖通配比较是非单值比较,会被拒绝;来源回答选出匹配的内部 identifier 对象。下列表达式另行检查每条外层记录的 identifiers 筛选是否存在结果,从而保留完整外层记录。

选择实际要返回的层级
查询方式结果或拒绝
选取匹配的 identifier 对象返回内部 identifier 对象
按嵌套存在性筛选外层记录返回完整外层记录
把非单值通配查询作为单值比较拒绝,不静默挑选一个元素
嵌套存在性查询
$[[email protected][[email protected] == "foo"]]

重复匹配与原 token 保留信息

查询可以有意重复选取同一节点;结果是有序列表而非集合,因此重复路径保留次数。matches.json 截取值的原文;当数学值符合整数范围时,1.00、指数写法及内部空白都会保留。

无匹配是完整空数组;输入被拒绝或工作量超限属于不同结果,不会发布部分匹配列表。

参考资料

  • 嵌套 JSONPath 选取问题及作者反馈

    保留完整文档;原帖的非单值比较会被拒绝。此单独的嵌套存在性查询返回完整首个外层记录,与回答的内部 identifier 选取不同。

  • RFC 9535 JSONPath

    背景规范;此固定范围排除函数,仅使用精确安全整数数值。

本分类工具使用说明

展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。

用 JSONPath 查询本地 JSON按固定 RFC 9535 范围筛选嵌套 JSON,导出完整匹配值与原位置。

按固定 RFC 9535 范围筛选嵌套 JSON,导出完整匹配值与原位置。

操作步骤

  1. 分别提供本地 JSON 文档和查询。
  2. 为每个角色选择有效来源模式;选择文件时只显示元信息,点击运行后读取并处理。
  3. 要按 identifiers 内部条件保留外层项目,在外层筛选中检查嵌套筛选是否有结果。
  4. 核对匹配位置,再复制或下载完整值数组与查询报告。

能力与限制

  • 一份 JSON 最多 1 MiB、50,000 值节点和 64 层。查询最多 4,096 个 UTF-8 字节、128 个根查询段及 32 次累计解析器调用。累积保存的源 JSON Pointer 路径最多 8 MiB;对象/数组读取、成员检查、键与描述符访问合计最多 100,000 次,包含嵌套筛选内部列表。
  • 支持成员、下标、切片、通配、后代查询、嵌套存在性筛选及基本逻辑/比较。拒绝函数和 JavaScript 表达式。文档与查询中的数值原文均须为精确安全整数。
  • 最多 10,000 个匹配;重复选取保留次数与顺序。query-report.json 和 matches.json 合计最多 8 MiB。无匹配输出空数组。
  • valueJSON 保留原 JSON 值的写法及空白。位置包含 RFC 规范化路径和 JSON Pointer;保留用户原查询,不重排表达式。
  • 文档角色选择粘贴内容或恰好一份 UTF-8 文件;改用粘贴时先清除所选文件。空文件或无效文件不会回退到隐藏的粘贴内容。文件名标签最多 512 个 UTF-8 字节。
  • 移除并记录一个开头 BOM,粘贴输入亦如此。拒绝无效 UTF-8、解码后重复的 JSON 键和不成对的 Unicode 代理字符;输入在本浏览器处理。
  • 整个任务固定 10 秒时限或取消后不提供部分制品。修正输入后重试,每次任务使用新 Worker。
  • 查询是单独的文本控件。拒绝 count/length/match/search/value 等函数、JavaScript 表达式和非单值比较;不表示完整 RFC 9535 符合性。不用规范化表达式替换查询原文。
  • 文件内容仅在点击运行后读取,与引擎加载、检查和处理共用固定的整个 10 秒任务期。取消或超过任一上限时,不发布部分复制或下载;输入仅留在当前标签页的有界内存中。
  • 屏幕采用有界预览;复制保留完整有序值数组,query-report.json 保留每项匹配位置与来源身份。不上传内容,不抓取远程引用。
打开用 JSONPath 查询本地 JSON →