您的位置:首页 > Web前端 > JavaScript

Groovy中使用JsonPath筛选response

2017-02-21 00:00 525 查看
摘要: Using JsonPath to filter response in Groovy Script while doing API testing



上图是某一个TestStep的返回结构,现在需要解析response中i="window_1"的v值。

import com.jayway.jsonpath.JsonPath

def resp = context.expand('${GetGrowthData_DataAPI#Response}')

def baseDri

方式一:循环

JsonPath.read(resp, '$.data.r[0].c[0].e').each{ map->
if(map.i == "window_1"){
baseDri = map.v
}
}
log.info baseDri

方式二:filter(条件式过滤)

def list = JsonPath.read(resp, "\$.data.r[0].c[0].e[?(@.i == 'window_1')]")
baseDri = list[0].v
log.info baseDri

若在JsonPath中使用双引号,就必须

以“\$”开头,就是在$之前加上一个转义字符;

需要循环的条件用“[]”括起来,并且条件需要写在“?()”里面;

条件中的变量是用单引号;

@符号之后有一个点号;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息