赞
踩
使用场景:
无法使用json提取器或者正则表达式取出多个数据时,便使用beanshell脚本来获取返回值并逐层解析。下面是个例子:
待解析数据的格式:
beanshell处理思路:
先获取到整个返回值,然后获取到JSON对象,获取到JSON对象后采用getString获取指定键值名称的节点值。若整个JSON还有嵌套的JSON,则获取为JSONArray,JSONArray解析到内部节点需要沿用前面的思路。总之,获取到JSONObject层后使用getString。
(如上结构图,第1行和22行大括号是第0层Json,data所包括区域是第1层json,使用JSONObject,exercises节点包括区域是第二层json且是个含有内置节点的,使用JSONArray,array作为数组,访问使用下标,而某个具体下标获取后也是个json即如图例如行8-12大括号部分,但此时该层json不再有内置节点,所以此时也是使用jsonobject)
beanshell处理脚本的具体代码如下:
import com.alibaba.fastjson.*;
prev.setDataEncoding("UTF-8");
String response = prev.getResponseDataAsString(); // 得到接口响应结果response
JSONObject jsonObject = JSONObject.parseObject(response); // 定义json对象
// 取响应结果中的data可以通过getJSONObject来获取
// list 需要通过getJSONArray来取
log.info("下面开始执行解析获取json值");
String examId = jsonObject.getJSONObject(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。