javascript - 如何遍历数组并将值保存到环境 Postman
问题描述
我正在尝试将某些值从一个大数组保存到邮递员环境中,以将这些值与另一个邮递员请求的值进行比较。
这是响应代码,它是一个大数组。我想将MeterToNextBollard的所有值保存为带有循环的环境变量。
[
{
"id": "",
"bicsCode": "",
"number": "",
"coordinates": {
"latitude": 0,
"longitude": 0
},
"metersToNextBollard": 20.15,
"mooringSide": "starboard"
},
{
"id": "",
"bicsCode": "",
"number": "",
"coordinates": {
"latitude": 0,
"longitude": 0
},
"metersToNextBollard": 24.85,
"mooringSide": "starboard"
},
{
"id": "",
"bicsCode": "",
"number": "",
"coordinates": {
"latitude": 0,
"longitude": 0
},
"metersToNextBollard": 18.2,
"mooringSide": "starboard"
},
目前我正在使用没有循环的代码,但我认为它可以更干净。
pm.test("Response is ok", function () {
pm.response.to.have.status(200);
});
const resBody = pm.response.json();
postman.setEnvironmentVariable("LT1-B1 MCA Afstand", resBody[0].metersToNextBollard);
postman.setEnvironmentVariable("LT-B19 MCA Afstand", resBody[18].metersToNextBollard);
postman.setEnvironmentVariable("DBF-D15 MCA Afstand", resBody[19].metersToNextBollard);
postman.setEnvironmentVariable("DBF-D98 MCA Afstand", resBody[102].metersToNextBollard);
postman.setEnvironmentVariable("DDE-1 MCA Afstand", resBody[103].metersToNextBollard);
postman.setEnvironmentVariable("DDE-128 MCA Afstand", resBody[230].metersToNextBollard);
postman.setEnvironmentVariable("DDN-178 MCA Afstand", resBody[231].metersToNextBollard);
postman.setEnvironmentVariable("DDN-224 MCA Afstand", resBody[277].metersToNextBollard);
编辑:
第一个循环有效,但现在我试图在另一个请求中做同样的事情,响应正文如下所示:
"bollards": [
{
"id": ,
"number": 1,
"description": "DBF-D15",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 11.48,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
{
"id": ,
"number": 2,
"description": "DBF-D16",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 3.28,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
{
"id": ,
"number": 3,
"description": "DBF-D17",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 11.48,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
{
"id": ,
"number": 4,
"description": "DBF-D18",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 13.12,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
{
"id": ,
"number": 5,
"description": "DBF-D19",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 11.48,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
{
"id": ,
"number": 6,
"description": "DBF-D20",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 3.28,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
{
"id": ,
"number": 7,
"description": "DBF-D21",
"position": {
"latitude": 0.0,
"longitude": 0.0
},
"metersToNextBollard": 11.48,
"phantomBollard": false,
"mooringSide": "STARBOARD"
},
解决方案
我假设这些环境变量应该是唯一的,并且查看我可以看到返回“DDE-59”值的文档。number
查看您的 API JSON 数据,似乎每个值都是唯一的,并且在number
刚刚粘贴“MCA Afstand”之后。
如果这一切都是真的,您可以为您的数据创建一个 for 循环,如下所示:
const resBody = pm.response.json();
for (let i = 0; i < resBody.length; i++) {
postman.setEnvironmentVariable(resBody[i].number + "MCA Afstand", resBody[i].metersToNextBollard);
}
除非您真的需要“MCA Afstand”,否则我会说将其从变量名中删除。因为它只是开销,并且可以在您要再次使用该变量时添加。
推荐阅读
- c# - 如何将位图/原始图像转换为 Futronic 兼容模板
- git - git:在较新的源文件中查找行的移动位置
- encryption - 保存可解密密码
- java - 我想要调用一个 servlet 并显示带有参数的 index.js
- laravel-5.4 - __construct() 方法调用但 handle() 函数未在 laravel 作业中调用
- ios - NSNotification 中心如何管理它的观察对象?
- oracle - oracle 只选择表中不同的记录
- java-8 - 我们在 Java 8 中有 setCurrentMillisFixed 吗?
- java - 在 Android 中从 JSON 文件生成菜单项
- vba - 如何自动调整扩展行的大小?