在线javascript 提取json json提取器怎么用
转载
1.说明
有时候需要将前一个请求返回的数据作为下一个请求的参数时,我们就需要 JSON提取器 / 正则表达式提取器。使用JSON提取器去提取我们想要的部分再传入后面的请求中。
2.步骤
第一步:添加JSON提取器
HTTP请求 鼠标右键 =>添加 后置处理器 =>JSON提取器

在察看结果树中选择JSON Path Tester,输入表达式即可拿来测试书写的Json提取器表达式是否正确,是否获取到了我们想要的数据

第二步:提取请求返回的我们需要的内容
返回数据(需要提取加粗的数据出来),可以使用 json.cn 方便查看格式
{"data":{"customer":{"cart":{"cartItems":[{"quantity":5,"lineId":"1502177237219287043","sku":{"product":{"extAttribute":[{"code":"logistics_description"}],"images":[{"images":null,"url":"x"}],"code":"AA9C08571T441_507","skus":[
{"code":"6199f9b283496a0001b8115b","options":[]}],"subTitle":null},"isEnabled":true},"selected":true},{"quantity":3,"lineId":"1481162053185445894","sku":{"product":{"extAttribute":[{"code":"logistics_description"}],"images":[{"images":[],"url":"x"}],"code":"AA1S00431CA155_999","skus":[{"code":"61b71e5008dd700001d1b90f","options":[]}],"subTitle":null},"isEnabled":true},"selected":true}]}}}
}
|


标准写法为$.key
其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可
如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号
第三步:取值
取值使用 ${JSON提取器中的参数名称}
即${cart_skuCode_0}
第四步:更多取值用法


获取取得的值中的第一个:${cart_quantity_1} 值:5
获取取得的值中的第二个:${cart_quantity_2} 值:3
勾选compute concatenation var的情况下,可以使用${cart_skuCode_ALL}获得全部的值 值:5,3
JsonPath
| 说明
|
$
| 根对象/元素
|
@
| 当前对象/元素
|
. or []
| 子操作符
|
..
| 递归下降
|
*
| 通配符,代表所有对象/元素
|
[]
| 下标运算,通过数组元素的下标访问数组元素
|
[,]
| Union操作符,使用间隔的名字或数组下边生成子集
|
[start:end:step]
| 数组切片
|
?()
| 使用过滤表达式
|
()
| 脚本表达式
|
举例说明:
{ "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
}
}
}
|
$.store.book[*].author
| 商店里所有书籍的作者
|
$..author
| 商店里所有书籍的作者
|
$.store.*
| 商店里的所有东西(包括一些书和一辆红色的自行车)
|
$.store..price
| 商店里的所有价格(包括每一本书的价格和自行车的价格)
|
$..book[2]
| 第三本书的所有信息
|
$..book[-1:]
| 最后一本书的所有信息
|
$..book[0,1]
| 前2本书的所有信息
|
$..book[:2]
| 前2本书的所有信息
|
$..book[?(@.isbn)]
| 找出所有有isbn编号的书籍信息
|
$..book[?(@.price<10)]
| 找出所有价格小于10的书籍信息
|
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。