如何在Postman Flow中提取JSON对象paths的键名?
在Postman Flow中提取JSON对象的键名
我有如下JSON数据:
{ "id": "0001", "type": "models", "name": "model_auto", "paths": { "/api/v1/vehicleModels": { "get": { "summary": "Возвращает список автопроизводителей", "description": "Возвращает список автопроизводителей", "operationId": "1" } }, "/api/v1/vehicleModels/{id}": { "get": { "summary": "Поиск списка по его id", "description": "Поиск списка по его id", "operationId": "2" } }, "/api/v1/vehicleCategorys": { "get": { "summary": "Список 3", "description": "Возвращает список 3", "operationId": "3" } } } }
我需要提取paths对象的所有键名,用JSON Path表达式$.paths.*~可以得到结果:
[ "/api/v1/vehicleModels", "/api/v1/vehicleModels/{id}", "/api/v1/vehicleCategorys" ]
但在Postman Flow里尝试了Evaluate、Select工具,以及如下脚本都没成功:
for (var key=0 in jsonData.paths) { console.log(key) }
请问如何在Postman Flow中实现这个需求?
方法1:使用Evaluate工具
在Postman Flow中添加Evaluate节点,输入以下表达式(替换jsonData为你实际使用的JSON变量名):
Object.keys(jsonData.paths)
执行后节点会直接返回paths所有键名组成的数组,效果和JSON Path表达式一致。
方法2:使用Script工具
添加Script节点,编写如下脚本(假设传入的JSON数据存在input变量中):
// 提取paths的所有键名 const pathsKeys = Object.keys(input.paths); // 将结果传递给后续节点使用 output.set('pathsKeys', pathsKeys);
脚本通过Object.keys()方法直接获取对象键名,再用output.set()把结果输出到Flow的变量中,方便后续节点调用。
内容的提问来源于stack exchange,提问作者Владимир Костяник
相关产品推荐
相关产品推荐

