JSONPath 查询
正在准备交互工具…
JSONPath 查询
使用字段、数组索引与通配符提取数据。
从嵌套数据中按路径提取字段或数组元素,减少手工复制。
输入与结果示例
数据:{"users":[{"id":1},{"id":2}]}
表达式:$.users[*].id
结果:[1,2]使用范围与注意事项
- 支持 $、点字段、数组索引和通配符。
- 当前不支持递归下降、过滤表达式或脚本执行;特殊字段名请先核对支持范围。
常见问题
查询结果为什么是数组?
路径可能匹配多个节点,结果用数组统一表示;空数组表示没有匹配项。
JSONPath 查询:从表达式到结果
先选择一个合成示例,看懂路径与结果的对应关系,再换成自己的 JSON。点击工作台的示例按钮会替换当前输入和表达式,并在浏览器本地运行。
可运行示例与预期结果
取嵌套字段
JSON 数据
{
"profile": {
"city": "北京"
},
"users": [
{
"id": 1,
"name": "小林"
},
{
"id": 2,
"name": "小周"
}
]
}JSONPath 表达式
$.profile.city
匹配一个节点也返回数组:["北京"]。
取数组第一项
JSON 数据
{
"profile": {
"city": "北京"
},
"users": [
{
"id": 1,
"name": "小林"
},
{
"id": 2,
"name": "小周"
}
]
}JSONPath 表达式
$.users[0].name
数组下标从 0 开始,结果为 ["小林"]。
取所有用户 ID
JSON 数据
{
"profile": {
"city": "北京"
},
"users": [
{
"id": 1,
"name": "小林"
},
{
"id": 2,
"name": "小周"
}
]
}JSONPath 表达式
$.users[*].id
[*] 遍历数组元素,结果为 [1,2]。
字段不存在
JSON 数据
{
"profile": {
"city": "北京"
},
"users": [
{
"id": 1,
"name": "小林"
},
{
"id": 2,
"name": "小周"
}
]
}JSONPath 表达式
$.users[*].email
[] 表示没有匹配项;请检查字段名、层级和大小写。
结果与错误排查
支持哪些 JSONPath 语法?
支持 $ 根节点、.字段、[0] 等非负数组下标、[*] 数组通配符和 .* 对象通配符。这是基础子集;不支持 $..id 递归下降、[?()] 过滤、切片、联合下标或脚本。带空格、点号等特殊字段名的方括号引号语法也暂不支持。
为什么返回数组,为什么会得到空数组?
一条路径可能匹配多个节点,因此统一返回数组。[] 表示没有匹配;[null] 表示匹配到一个明确的 null 值,两者含义不同。
JSON 数据错误和表达式错误怎么处理?
数据区必须是标准 JSON:字段和字符串用双引号,不含注释或尾逗号。表达式从 $ 开始,按字段层级逐段检查;使用本工具未支持的语法时会报错。
可以直接查询接口或上传大文件吗?
此页处理你粘贴或导入的数据,不请求业务接口。单次数据输入上限为 5 MB;数字型长 ID 请按接口合同使用字符串,以免精度丢失。