当前位置: 首页 > 知识库问答 >
问题:

如何在空手道中从API中提取响应来制作JSON数组

牟飞沉
2023-03-14

我想提取一些值并以JSON格式存储在数组中。

我有我的代码在karate-config.js文件中,因为我调用的API只需要调用一次,结果需要存储在数组中,以便以后可以在其他功能中使用。

 var result = karate.callSingle('classpath:examples/users.feature@country',config);
 config.array = []
     for (var i=0; i<result.response.length; i++){
          config.array.push({ 'userId': result.response[i].id, 'country': result.response[i].country});
     }
karate.log(config.array)

结果

[object Object],[object Object] 

预期结果

                [
                    {
                    "userId" : 931,
                    "country" : "USA"
                    },

                    {
                    "userId" : 709,
                    "country" : "HK"
                    }
                ]

共有1个答案

杜成和
2023-03-14

即使日志显示是这样的,数据也可能很好——JSON在JS中与空手道和Java的其他部分相比存在一些限制。

只需添加一个转换:

config.array = karate.toJava(config.array);

如果它不起作用,它可能是空手道中的一个bug,欢迎您提供修复。

 类似资料:
  • 如何从空手道API中的json响应中检索数值? 在这里我想检索41651625424这个值在一个变量因为我必须通过这作为输入在另一个请求体

  • 不幸的是,ei从我的后端获得的响应不是正确的xml格式,并且它以一种糟糕的格式给出了如下所示的响应: 因此,现在空手道无法读取响应并获取“WorkflowExternalRef”的值,这是我本次测试的目标。 空手道能读懂吗?

  • 在下面的json响应中,我想更新所有ProductNumber的数量,响应中的Item count可能是1或大于1,这取决于输入。我怎么能在空手道中做到这一点。我尝试了我的方法,但它不起作用,因此请提供解决方案。(我在下面提供了我的方法,如果是错误的方法,请忽略) 我通过创建JS文件并将所需的值传递给它,尝试使用下面的方法,但当我尝试使用java脚本调用功能文件时失败了。(可能是我打电话的方式不对

  • 我得到的答复如下: 如何提取属性xmlns为https://www.w3schools.com/xml/的值? def response=“”“ soap:body37.77777777777778”“

  • 我如何将值从空手道API传递到Java类? 正如文档中提到的,我使用了以下代码段从Java API获取响应。但它返回带有未格式化的JSON内容的响应。 然后,我使用以下脚本打印响应。 多谢了。

  • 下面是我在点击特定Web服务时收到的JSON响应: 我不知道哪个索引有我的期望值(我需要在确定哪个具有)后验证多个值),这是动态的。不希望使用硬编码值。并匹配,因为这将在下次更改。 对此我有两个问题: 如何将响应传递给java代码并获取具有的数组索引,以便使用此索引进行验证? 下面的代码不起作用。