zoukankan      html  css  js  c++  java
  • JsonPath 语法 与 XPath 对比

    JsonPath 语法 与 XPath 对比

     
    XPath JSONPath Description
    / $ the root object/element
    . @ the current object/element
    / . or [] child operator
    .. n/a parent operator
    // .. recursive descent. JSONPath borrows this syntax from E4X.
    * * wildcard. All objects/elements regardless their names.
    @ n/a attribute access. JSON structures don't have attributes.
    [] [] subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator.
    | [,] Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set.
    n/a [start:end:step] array slice operator borrowed from ES4.
    [] ?() applies a filter (script) expression.
    n/a () script expression, using the underlying script engine.
    () n/a grouping in Xpath

    JSONPath expressions can use the dot–notation

    $.store.book[0].title

    or the bracket–notation

    $['store']['book'][0]['title']

    The following XPath expression

    /store/book[1]/title

    JsonPath would look like

    x.store.book[0].title

    or

    x['store']['book'][0]['title']

    JSONPath examples

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    { "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
        }
      }
    }

      

    XPath JSONPath Result
    /store/book/author $.store.book[*].author the authors 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.
    //book[3] $..book[2] the third book
    //book[last()] $..book[(@.length-1)]
    $..book[-1:]
    the last book in order.
    //book[position()<3] $..book[0,1]
    $..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.

     需要的JAR包

    json-path-0.9.1.jar

    json-smart-1.2.jar

    commons-lang-2.6.jar

  • 相关阅读:
    服务监控信息到底是“主动推送”还是“被动扫描”???
    spring boot metrics信息推送开发
    spring boot +RabbitMQ +InfluxDB+Grafara监控实践
    "敏捷革命"读书笔记
    对于搞技术的人怎样针对自己看什么书
    HBase数据库相关基本知识
    spring cloud 微服务日志跟踪 sleuth logback elk 整合
    日志收集(ElasticSearch)串联查询 MDC
    关于” 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引” 这篇博客相关的优化采坑记录
    记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引
  • 原文地址:https://www.cnblogs.com/exmyth/p/6170439.html
Copyright © 2011-2022 走看看