如何从API响应中提取动态键对应的取值?
解决方法
你当前代码通过Object.keys(data.value)[0]获取的是动态键名,要拿到对应的值,只需用这个键名访问data.value对象即可。
基础修正版代码
var data = JSON.parse(responseBody); // 获取动态键名 const dynamicKey = Object.keys(data.value)[0]; // 通过键名取出对应的值 const targetValue = data.value[dynamicKey]; // 存入环境变量 pm.environment.set("elementId", targetValue);
也可以简化为一行代码:
var data = JSON.parse(responseBody); pm.environment.set("elementId", data.value[Object.keys(data.value)[0]]);
进阶:精准匹配指定格式的键
如果data.value可能存在多个键,需要确保只提取格式为element-6066-xxxx-xxxx-xxxxxxxxx的键对应的值,可以用正则表达式过滤:
var data = JSON.parse(responseBody); // 用正则匹配目标键格式 const targetKey = Object.keys(data.value).find(key => /^element-6066-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{9}$/i.test(key) ); if (targetKey) { pm.environment.set("elementId", data.value[targetKey]); } else { console.log("未找到符合指定格式的键"); }
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

