JSON 指针解析器 (RFC 6901)
开发
JSON 指针是用形如 /user/roles/0 的斜杠分隔路径来定位 JSON 文档中某个值的标准(RFC 6901)方式。JSON Schema 的 $ref、JSON Patch、JSON Merge Patch 以及许多 OpenAPI 工具底层都在用它。粘贴文档与指针,即可格式化地看到它选中的确切值。解析器精确实现规范:空指针返回整个文档,~1 表示字面斜杠、~0 表示字面波浪号(因此键 "a/b" 用 /a~1b 访问),数组索引必须是 0 或无前导零的无符号整数,特殊 token "-" 在读取时没有值。也接受 URI 片段指针(#/user/roles/0)并做百分号解码。它还会列出文档中的每个指针及值预览,点击即可发现到任意节点的精确路径。全部在本地运行;不上传任何内容。
—
解析的值
"admin"
本文档中的指针(点击使用)
| (根) | {…} (3) |
| /user | {…} (3) |
| /user/id | 42 |
| /user/name | "Ada" |
| /user/roles | […] (2) |
| /user/roles/0 | "admin" |
| /user/roles/1 | "editor" |
| /a~1b | "slash in key" |
| /settings | {…} (2) |
| /settings/theme | "dark" |
| /settings/limits | {…} (1) |
| /settings/limits/max | 100 |
空指针 = 整个文档。键中的 / 转义为 ~1,~ 转义为 ~0。接受形如 #/a/b 的 URI 片段。
使用方法
- 粘贴或编辑 JSON 文档。
- 输入 JSON 指针(如 /user/name 或 #/settings/limits/max),或点击指针列表中的某一行。
- 查看解析后的值;键中的斜杠转义为 ~1,波浪号转义为 ~0。
常见问题
- JSON 指针与 JSONPath 有何不同?
- JSON 指针(RFC 6901)用简单的斜杠分隔路径精确定位一个值,被 JSON Schema、JSON Patch、OpenAPI 使用。JSONPath 是一种查询语言,可用通配符、过滤器与递归下降匹配多个值。前者用本工具,后者用 JSONPath 测试器。
- ~0 与 ~1 是什么?
- 由于 / 分隔 token 且 ~ 是转义字符,键中的字面 / 写作 ~1,字面 ~ 写作 ~0。因此成员 "a/b" 用 /a~1b 访问,"m~n" 用 /m~0n。反转义时先替换 ~1 再替换 ~0,正如 RFC 所要求。
- 空指针返回什么?
- 空字符串是引用整个文档的有效指针,因此返回完整的 JSON 值。注意 "/" 并非空 — 它是带一个空字符串 token 的指针,选中键为空字符串的成员。
- 为何我的指针解析失败?
- 常见原因:成员或数组索引不存在;数组索引有前导零(仅 0、1、2… 且不可补零有效);用了 "-"(读取时无值);或非空指针未以 / 开头。错误信息会指出失败的具体 token。
相关工具
Base64 与十六进制互转
在浏览器中将 Base64 字符串转换为十六进制字节,并将十六进制转换回 Base64,支持 URL-safe。
开发00
Quoted-Printable 编码与解码
将文本编码为 MIME Quoted-Printable(RFC 2045)或解码 — 处理 =XX 转义、软换行与 UTF-8 — 全部在浏览器内完成,编码时按 76 字符换行。
开发00
哈希生成器 (SHA)
根据文本生成 SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。
开发00
URL 编码 / 解码
将文本按百分号编码用于网址,或将编码的网址解码为文本。
开发00
Base64 编码 / 解码
即时将文本编码为 Base64,或将 Base64 解码为文本。
开发00
JSON 格式化与校验工具
在浏览器中格式化、美化、压缩并校验 JSON。
开发00