使用postman调试接口时,产生了这么一个想法:
想提取所有的省份信息,存于一个列表中,返回字段如下图所示:
Postman的 Tests(执行后脚本)可以实现操作
一、使用循环方法,获取所有的省份名称列表// new 一个对象接收响应信息
var jsonData = pm.response.json();
// new 一个对象接收 count 列表字段的长度(循环遍历次数)
var count = jsonData.data.provinces.length
// new 一个空列表(一会接收并存储省份名称)
var list = []
// 开始 for 循环遍历 num 列表
for(var i=0; i < count; i++ ){
// 使用变量 provincesName 接收省份名称
provinceName = jsonData.data.provinces[i].name
// 使用空列表 list 存储遍历的省份名称
list.push(provinceName)
};
// 控制台打印省份列表
console.log("所有省份名称列表:",list)
二、使用 map() 方法进行遍历取值
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果
// new 一个对象接收响应信息
var jsonData = pm.response.json();
// 创建一个新数组:x,数组中的每个元素都会去调用 .Name 方法并且返回对应字段
var provinces = jsonData.Data.Provinces.map(x => {return x.Name})
// 将返回数组:x 的结果打印出来
console.log(provinces)
三、两个方法均可以实现输出所有的省份名称
四、拓展学习:如何取出所有的【仅城市】的信息
// new 一个对象接收响应信息
var jsonData = pm.response.json();
// 准备一个空列表(用来插入得到的数据)
var result = [];
// 创建一个新数组,数组中的每个元素都会去调用提供的函数方法并且返回对应字段
jsonData.Data.Provinces.map
// ↓ 这里的x:数据返回的是所有的Provinces组成的数组
(x => {x.Citys.map
// ↓ 这里的y:数据返回的是所有的Citys组成的数组,取出Name字段并插入列表
(y => {result.push(y.Name)})
});
// 将返回数组:x 的结果打印出来
console.log(result)
五、拓展学习:如何取出所有的【省份+城市】的信息
// new 一个对象接收响应信息
var jsonData = pm.response.json();
// 准备一个空列表(用来插入得到的数据)
var result = [];
// 创建一个新数组,数组中的每个元素都会去调用提供的函数方法并且返回对应字段
jsonData.Data.Provinces.map
// ↓ 这里的x:数据返回的是所有的Provinces组成的数组
(x => {x.Citys.map
// ↓ 这里的y:数据返回的是所有的Citys组成的数组,取出省份与城市的Name字段并插入列表
(y => {result.push(x.Name+","+y.Name)})
});
// 将返回数组:x 的结果打印出来
console.log(result)