JsonPath解析规则
概述
JsonPath 是一种用于从 JSON 文档中提取特定数据的查询语言,类似于 XPath 之于 XML。它允许通过路径表达式灵活地定位 JSON 结构中的元素(对象、数组、值)。
核心语法与操作符
| 操作符 | 含义 | 示例 | 说明 |
|---|---|---|---|
$ | 根节点(当前文档根) | $.store.book | 从根开始查找 |
. | 子节点(点记法) | $.store.book | 标准对象属性访问 |
['key'] | 子节点(括号记法) | $['store']['book'] | 当 key 含特殊字符或空格时使用 |
.. | 递归下降(任意深度) | $..author | 搜索所有层级的 author 字段 |
* | 通配符(所有元素/属性) | $.store.* | 获取 store 下所有子节点 |
[n] | 数组索引(0-based) | $.books[0] | 第一个元素 |
[n1,n2,...] | 多索引选择 | $.books[0,2,4] | 选择第 1、3、5 个 |
[start:end:step] | 数组切片 | $.books[1:4]$.books[::-1] | 索引 1~3(不含4);反向(部分支持) |
[key1,key2] | 多属性选择 | $['id','name'] | 返回多个指定字段 |
示例
json
{
"store": {
"book": [
{
"category": "fiction",
"title": "The Hobbit",
"price": 15.5,
"authors": [
"Tolkien"
]
},
{
"category": "science",
"title": "Cosmos",
"price": 25,
"authors": [
"Sagan",
"Druyan"
]
},
{
"category": "fiction",
"title": "The Silmarillion",
"price": 18,
"authors": [
"Tolkien"
]
}
],
"bicycle": {
"color": "red",
"price": 200
}
}
}