杂谈--Json Path简单使用

文章目录

  • 概述
    • 常用语法
    • 实例

概述

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中的 //* :$. .*

你可能感兴趣的:(json)