irpas技术客

json提取器(JSON Extractor)的使用,提取接口返回值给下个接口使用(关联)_Jarthong_json提取器

大大的周 6069

1、json提取器官方解释:

2、接口返回的数据是json格式,在要提取返回数据的接口中按如下步骤添加“json提取器”;

3、在接口返回数据中,要提取【pubKey】的值:

(1)json提取器填写介绍:

注意:如果同时提取多个:则Match No. (0 for Random)和Default Values一定要填;如果匹配的结果只有一个,则Match No.填“1”;另外Default Values可随便填“0”,不填的话会报错,匹配不到数据;

?(2)可以把json返回数据在网上的json格式化工具格式化一下,以帮助查看:

(3)JSON Path?expressions匹配规则:

json串 []表示对象组成的数组,{}表示对象(Python中叫字典)。

对象里包含多个 "属性":属性值。属性值可以是值,或数组,或对象。

JSON Extractor使用json?path表达式匹配,可以一次取多个变量值。

美元符号“$”表示响应的根对象;

英文句号“.”表示取子对象或对象的属性;(或者:表示取字典里key的value)

英文中括号“[]”表示取数组里的对象用,数组索引从0开始。

实例:取上面json串里的pubKey的值,表达式为:$.datas.pubKey

(4)举一个其他例子:

如果返回结果的有多个嵌套,怎么办?

比如要提取下图中的violationcode的参数1345,要怎么做呢?首先,了解返回的结构,这个是一个字典里嵌套了一个列表,然后列表里再嵌套了一个字典。那么我们的json path expression就应该设置为$.result[0].violationCode。

详解:其实,也没多难。代码中怎么取,就怎么取,学过代码就知道很简单了。

外面是一层字典,先取result,根据key(result)取values

然后是一层列表,我们取第一个,就是0?;

然后是一层字典,再根据key取values即可,即violationcode取参数1345

(5)同时提取多个值:如下,要同时提取keyId和pubKey;

当json提取器要提取两个值(或两个以上)的时候,一定要填写默认值,不然会报错“Mismatch between number of variables, json expressions and default values”

4、在后面的接口中引用上面提取的值:

美元符号和大括号,大括号里填写json提取器里的“创建变量的名称”(names of created variables)里填的值;

?执行请求,在察看结果树里看请求里发送的数据是否准确:如果准确,说明提取成功。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #json提取器 #no #for #Random和Default #No填1另外Default