roman_日积跬步-终至千里

roman_日积跬步-终至千里

一. jsonpath语法


1. 操作符

2. 函数

可以在JsonPath表达式执行后进行调用,其输入值为表达式的结果。

3. 过滤器

过滤器是用于过滤数组的逻辑表达式。

二.实例说明

1. 常用示例

BODY
{
   "code" : 200,
   "msg" : "成功!",
   "data" : {
      "yesterday" : {
         "date" : "13日星期一",
         "high" : "高温 23℃",
         "fx" : "东北风",
         "low" : "低温 18℃",
         "fl" : "<![CDATA[3-4级]]>",
         "type" : "小雨"
      },
      "city" : "杭州",
      "aqi" : null,
      "forecast" : [
        
         {
            "date" : "17日星期五",
            "high" : "30",
            "fengli" : "<![CDATA[<3级]]>",
            "low" : "22",
            "fengxiang" : "无持续风向",
            "type" : "小雨"
         },
         {
            "date" : "18日星期六",
            "high" : "33",
            "fengli" : "<![CDATA[<3级]]>",
            "low" : "19,
            "fengxiang" : "无持续风向",
            "type" : "多云"
         }
      ],
      "ganmao" : "各项气象条件适宜,无明显降温过程,发生感冒机率较低。",
      "wendu" : "21"
   }
}

2. 实际中的应用场景示例

  1. 获取数组对象中的某个值
表达式:$.data.forecast[*].type 获取值为:["多云","中到大雨","多云","小雨","多云"]

 

  1. 获取数组中某个位置的值
表达式:$.data.forecast[*].type 获取值为:["多云","中到大雨","多云","小雨","多云"]

取获取值中第一个值“多云”:{$.data.forecast[*].type}[0],依次类推。

 

  1. key中含有特殊值
{
   "data" : [
      {
         "count(*)" : 123,
         "left(send_address,2)":456
      }
   ]
}

表达式:$.["data"][0]["count(*)"] 获取值为:123

表达式:{$.["data"][0]}['left(send_address,2)'] 获取值为:456

 

  1. 判断不包含
[
 {
  "supplierId":523,
  "goodsId":55280465,
  "onlineStatus":1,
  "title":"多颜色商品-auto-20161121154939513",
  "importType":1,
 }
]

表达式:{$.[?(@.goodsId == 55280465)]}.containsKey('avgUv7D') 获取值为false
或
表达式:!{$.[?(@.goodsId == 55280465)]}.containsKey('avgUv7D') 获取值为true
或
表达式:$.[?(@.goodsId == 55280465)].[?(@.avgUv7D)] 获取值为[]

 

01-22 18:40