`
tonynju
  • 浏览: 74515 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嘉善
社区版块
存档分类
最新评论

JSONPath - XPath for JSON

阅读更多
可以用于通过路径解析JSON对象的一个函数
主页:http://goessner.net/articles/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
   
   
   
    { "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.

    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics