如何在Karate框架中提取API响应生成符合要求的JSON数组
你遇到的日志输出异常是因为karate.log直接打印对象数组时,默认调用了对象的toString()方法,并非数组存储逻辑出错。你可以按下面的方案调整代码,同时实现「正确打印格式」和「更符合Karate最佳实践的数组转换」:
调整后代码
var result = karate.callSingle('classpath:examples/users.feature@country', config); // 使用Karate内置的map方法简化数组转换,替代手写for循环 config.array = karate.map(result.response, function(item) { return { userId: item.id, country: item.country }; }); // 用karate.toJson将对象转成格式化JSON字符串再打印 karate.log(karate.toJson(config.array, true));
修改说明
karate.map是Karate官方提供的数组遍历转换工具,相比手写for循环语法更简洁,也能避免JS语法兼容问题karate.toJson方法支持将JS对象转为JSON字符串,第二个参数传入true会自动开启格式化缩进,输出你需要的带换行、缩进的JSON结构- 即使不修改日志打印逻辑,只要数组赋值逻辑正确,
config.array本身已经可以正常被其他feature文件调用读取属性,调整打印逻辑仅用于方便调试查看内容。
内容的提问来源于stack exchange,提问作者Maddy
相关产品推荐
相关产品推荐

