• JsonPath提取表达式


    Path Examples
    {
        "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
            }
        },
        "expensive": 10
    }

    Operators

    OperatorDescription
    $ The root element to query. This starts all path expressions.
    @ The current node being processed by a filter predicate.
    * Wildcard. Available anywhere a name or numeric are required.
    .. Deep scan. Available anywhere a name is required.
    .<name> Dot-notated child
    ['<name>' (, '<name>')] Bracket-notated child or children
    [<number> (, <number>)] Array index or indexes
    [start:end] Array slice operator
    [?(<expression>)] Filter expression. Expression must evaluate to a boolean value.

    Functions

    FunctionDescriptionOutput
    min() Provides the min value of an array of numbers Double
    max() Provides the max value of an array of numbers Double
    avg() Provides the average value of an array of numbers Double
    stddev() Provides the standard deviation value of an array of numbers Double
    length() Provides the length of an array Integer
    sum() Provides the sum value of an array of numbers Double

    Filter Operators

    OperatorDescription
    == left is equal to right (note that 1 is not equal to '1')
    != left is not equal to right
    < left is less than right
    <= left is less or equal to right
    > left is greater than right
    >= left is greater than or equal to right
    =~ left matches regular expression [?(@.name =~ /foo.*?/i)]
    in left exists in right [?(@.size in ['S', 'M'])]
    nin left does not exists in right
    subsetof left is a subset of right [?(@.sizes subsetof ['S', 'M', 'L'])]
    anyof left has an intersection with right [?(@.sizes anyof ['M', 'L'])]
    noneof left has no intersection with right [?(@.sizes noneof ['M', 'L'])]
    size size of left (array or string) should match right
    empty left (array or string) should be empty

    Path Examples

    JsonPath Result
    $.store.book[*].author The authors of all books:
    [
       "Nigel Rees",
       "Evelyn Waugh",
       "Herman Melville",
       "J. R. R. Tolkien"
    ]
    $..author All authors:
    [
       "Nigel Rees",
       "Evelyn Waugh",
       "Herman Melville",
       "J. R. R. Tolkien"
    ]
    $.store.* All things, both books and bicycles:
    [
       [
          {
             "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
          }
       ],
       {
          "color" : "red",
          "price" : 19.95
       }
    ]
    $.store..price The price of everything:
    [
       8.95,
       12.99,
       8.99,
       22.99,
       19.95
    ]
    $..book[2] The third book:
    [
       {
          "category" : "fiction",
          "author" : "Herman Melville",
          "title" : "Moby Dick",
          "isbn" : "0-553-21311-3",
          "price" : 8.99
       }
    ]
    $..book[-2] The second to last book:
    [
       {
          "category" : "fiction",
          "author" : "Herman Melville",
          "title" : "Moby Dick",
          "isbn" : "0-553-21311-3",
          "price" : 8.99
       }
    ]
    $..book[0,1] The first two books
    $..book[:2] All books from index 0 (inclusive) until index 2 (exclusive)
    $..book[1:2] All books from index 1 (inclusive) until index 2 (exclusive)
    $..book[-2:] Last two books
    $..book[2:] Book number two from tail
    $..book[?(@.isbn)] All books with an ISBN number:
    [
       {
          "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
       }
    ]
    $.store.book[?(@.price < 10)] All books in store cheaper than 10:
    [
       {
          "category" : "reference",
          "author" : "Nigel Rees",
          "title" : "Sayings of the Century",
          "price" : 8.95
       },
       {
          "category" : "fiction",
          "author" : "Herman Melville",
          "title" : "Moby Dick",
          "isbn" : "0-553-21311-3",
          "price" : 8.99
       }
    ]
    $..book[?(@.price <= $['expensive'])] All books in store that are not "expensive":
    [
       {
          "category" : "reference",
          "author" : "Nigel Rees",
          "title" : "Sayings of the Century",
          "price" : 8.95
       },
       {
          "category" : "fiction",
          "author" : "Herman Melville",
          "title" : "Moby Dick",
          "isbn" : "0-553-21311-3",
          "price" : 8.99
       }
    ]
    $..book[?(@.author =~ /.*REES/i)] All books matching regex (ignore case):
    [
       {
          "category" : "reference",
          "author" : "Nigel Rees",
          "title" : "Sayings of the Century",
          "price" : 8.95
       }
    ]
    $..* Give me every thing
    $..book.length()

    The number of books



    path example:
    注:在jmeter 中使用时这里的 length()有时候并不太好用,可以用另外一种方法代替,如下图,要提取 rows 的长度,可用JSON/YAML Path Extractor 提取整个列表$.data.rows赋给变量 list_rows,查看Debug Sampler ,会返回一个 list_rows_matchNr 长度值,可以通过这个长度值进行比较或者取值

    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    android data binding jetpack I 环境配置 model-view 简单绑定
    java 直接内存
    Android内存管理机制
    使用老版本的java api提交hadoop作业
    通过java api提交自定义hadoop 作业
    hadoop错误总结
    linux下eclipse闪退和重装jdk的方法
    完全分布式安装hadoop
    hadoop伪分布式安装
    2014年度总结
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/13391188.html
Copyright © 2020-2023  润新知