jsonpath
jsonpaht是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,jsonpath对于JSON来说,相当于Xpath对于xml。
- jsonpath和xpath对比
 
| Xpath | JSONPath | 描述 | 
|---|---|---|
| / | $ | 根节点 | 
| . | @ | 现行节点 | 
| . | . or [ ] | 取子节点 | 
| .. | NA | 取父节点,Jsonpath不支持 | 
| // | .. | 不管位置,选择所有符合条件节点 | 
| * | * | 匹配所有元素节点 | 
| @ | NA | 根据属性访问,Json不支持,因为json是个key-value递归结构,不需要属性访问 | 
| [ ] | [ ] | 迭代器标示(可进行简单的迭代操作,如数组下标,根据内容选值等) | 
| | | [, ] | 支持多选迭代操作 | 
| [ ] | ?() | 支持过滤操作 | 
| NA | () | 支持表达式计算 | 
| () | NA | 分组,Jsonpath不支持 | 
- jsonpath example,选自官方文档。
 
1  | { "store": {  | 
| xpath | Jsonpath | result | 
|---|---|---|
| /store/book/author | $.store.book[*].author | the author of all books in the store | 
| //author | $..author | all authors | 
| /store/* | $.store.* | all things in store,which are some books and a red bicycle. | 
| /store//price | $.store..price | the price of everything in the store | 
| //boook[3] | $..book[2] | the third book | 
| //book[last()] | $..book[@.length-1] or $..book[-1:] | the last book in order | 
| //book[position()<3] | $..book[0,1] or $..book[:2] | the first two books | 
| //book[isbn] | $..book[?(@.isbn)] | filter all books with isbn number | 
| //book[price<10] | $..book[?(@price<10)] | filter all books cheapier than 10 | 
| //* | $..* | all elements in XML document. All members of JSON structure. |