概述
JsonPath方便对Json数据结构进行内容提取。
常用语法
说明 | 语法 | 实例 |
---|---|---|
根对象 | $ | $.user |
当前对象 | @ | @.length |
下级节点 | .node_name 或者 [‘node_name’] | $.user.name 或者 $[‘user’][‘name’] |
数组下标 | [index] | $.user[0] 下标从0开始 |
数组切片 | [start : end : step] | |
通配符,匹配所有成员 | * | |
匹配成员的所有子元素 | . . | 相当于xpath中的 // |
表达式 | (expr) | $.store.book[(@.length-1)].title 表示获取最后一个 book 的 title |
数据筛选 | ?(boolean expr) | $.store.book[?(@.price < 10)].title 表示获取价格小于 10 的所有 book 的 title |
实例
{
"store": {
"book": [{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
}, {
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
}, {
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
}, {
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
- 获取所有书的作者:$.store.book[*].author
- 获取所有价格:$.store. .price
- 获取最后一个book:$. .book[(@.length-1)] 或者 $. .book[-1:]
- 获取前两个ook:$. .book[0,1] 或者 $. .book[0:2] 或者 $. .book[:2]
- 获取包含字段isbn的book:$ . .book[?(@.isbn)]
- 相当于xpath中的 //* :$. .*