• $.store.book[?(@.category=='fiction')].category


    表达式1

    $.store.book[?(@.category=='fiction')].category

    json source

    {
    "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
    }
    View Code

    返回

    [
    "fiction",
    "fiction",
    "fiction"
    ]

    表达式2

    $.store.book[?(@.category=='fiction')].title[1]

    返回

    [
    "w",
    "o",
    "h"
    ]

    表达式3

    返回索引

    $.store.book[0]

    $.store.book

    $.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
        }
      ]
    ]

    $.store.book[2]

    谓词修饰

    Inline Predicates

    Inline predicates are the ones defined in the path.

    List<Map<String, Object>> books =  JsonPath.parse(json)
                                         .read("$.store.book[?(@.price < 10)]");

    You can use && and || to combine multiple predicates [?(@.price < 10 && @.category == 'fiction')] , [?(@.category == 'reference' || @.price > 10)].

    You can use ! to negate a predicate [?(!(@.price < 10 && @.category == 'fiction'))].

    表达式5  枚举

    $.store.book[?(@.category=='fiction')].author

    返回:

    [
      "Evelyn Waugh",
      "Herman Melville",
      "J. R. R. Tolkien"
    ]

    表达式6:作用域修饰

    $.store.book[?(@.price < 10 && @.category == 'fiction')]

    返回:

    [
      {
        "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      }
    ]
    $.store.book[?(@.category == 'reference' || @.price > 10)]

    返回:

    [
      {
        "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": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]
    $.store.book[?(!(@.price < 10 && @.category == 'fiction'))]

    返回:

    [
      {
        "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": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]

    price 作用域大于10

    作用域!

    $.store.book[?((@.price < 10 && @.category == 'fiction'))] 

    返回:

    [
      {
        "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      }
    ]

    解析{} 也就是: {子集合

    $.[*]

    返回:

    [
      {
        "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
        }
      },
      10,
      [
        {
          "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
      },
      {
        "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
      },
      "reference",
      "Nigel Rees",
      "Sayings of the Century",
      8.95,
      "fiction",
      "Evelyn Waugh",
      "Sword of Honour",
      12.99,
      "fiction",
      "Herman Melville",
      "Moby Dick",
      "0-553-21311-3",
      8.99,
      "fiction",
      "J. R. R. Tolkien",
      "The Lord of the Rings",
      "0-395-19395-8",
      22.99,
      "red",
      19.95
    ]
    View Code

    解析

    $.[*].price

    返回

    [
      19.95,
      8.95,
      12.99,
      8.99,
      22.99
    ]

    混合表达式:

    [?(@.firstname == 'Bob' || @.firstname == 'Jane' && @.surname == 'Smith')]"

    拆分{}

    $.store.[?(@.color)]

    返回>>>:

    [
      {
        "color": "red",
        "price": 19.95
      }
    ]

    json通过正则过滤

    $..book[?(@.author =~ /.*Melville/i)]

    返回表达式:

    http://jsonpath.herokuapp.com/?path=$..book[?(@.author =~ /.*REES/i)]
    [
       {
          "category" : "fiction",
          "author" : "Herman Melville",
          "title" : "Moby Dick",
          "isbn" : "0-553-21311-3",
          "price" : 8.99
       }
    ]
    $..book[?(@.author =~ /.*/i)]

    返回所有node节点

    [
       {
          "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
       }
    ]
    View Code

    特定未节点返回

    http://jsonpath.herokuapp.com/?path=$..book[?(@.price =~ /.*99/i)]
    $..book[?(@.price =~ /.*99/i)]
    [
       {
          "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
       }
    ]
  • 相关阅读:
    javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
    注意资源利用 不然导致资源消耗会很严重
    E212: 不能以写入模式打开 linux
    安装db2 提示不是有效的win32应用程序?
    对苹果“五仁”编程语言Swift的简单分析
    Spoj 1557 Can you answer these queries II 线段树 随意区间最大子段和 不反复数字
    Oracle 学习笔记 14 -- 集合操作和高级子查询
    PHP的curl库代码使用
    AWS OpsWorks新增Amazon RDS支持
    最短编辑距离算法
  • 原文地址:https://www.cnblogs.com/a00ium/p/10410440.html
Copyright © 2020-2023  润新知