我有以下来自请求的响应
[
{
"id": 3767,
"sellerName": "abc",
"siteActivity": [
{
"siteId": -1,
"siteName": "example.com",
"categories": [
{
"categoryId": 79654,
"parentId": null,
"name": "Photo & Picture Frames",
"siteName": null,
"channelType": null
},
{
"categoryId": 114397,
"parentId": null,
"name": "Chests of Drawers",
"siteName": null,
"channelType": null
},
{
"categoryId": 11707,
"parentId": null,
"name": "Jewellery Boxes",
"siteName": null,
"channelType": null
},
{
"categoryId": 45505,
"parentId": null,
"name": "Serving Trays",
"siteName": null,
"channelType": null
}
]
}
]
},
{
"id": 118156,
"sellerName": "xyz",
"siteActivity": [
{
"categoryId": 45505,
"parentId": null,
"name": "Serving Trays",
"siteName": null,
"channelType": null
}
]
}
]
现在,我需要提取“id”值和“categoryId”值,并将它们作为列表发送到下一个请求主体中。
目前,我正在使用JSON路径提取器和表达式
$.[*].id
让我掌握所有身份证和
$.[*].siteActivity.[categoryId]
对于类别 ID。接下来,我想使用上述值并将它们作为请求正文中的参数发送。目前,我只能提取一个id
$.[0].id
然后将其分配给变量“id”,并在请求正文中使用以下命令
{"ids":[{"id":"${id}"}]}
但我希望能够发送
{"ids":[{"id":"${id}"},{"id":"${id2}"}....]}
可以有多少id没有限制,所以我不能硬编码,需要一些动态的东西来进行聚合。什么样的处理器可以帮助我?如果可以的话,请添加一些示例。
我相信您应该能够使用Beanshell PostProcser来构建请求。
给定示例数据,您的$。[*].id
JSONPath表达式应返回以下值:
id=[3767,118156]
id_1=3767
id_2=118156
所以基本上你需要:
为此,在 JSONPath 提取器之后添加一个 Beanshell PostProcessor,并将以下代码放入其“脚本”区域
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; // necessary imports
JSONObject data2Send = new JSONObject();
JSONArray array = new JSONArray(); // instantiate JSON-related classes
int idCount = vars.get("id").split(",").length; // get "id" variables count
for (int i = 1; i <= idCount; i++) { // for each "id" variable
JSONObject id = new JSONObject(); // construct a new JSON Object
id.put("id", vars.get("id_" + i));// with name "id" and value id_X
array.add(id); // add object to array
}
data2Send.put("ids",array); // add array to "ids" JSON Object
vars.put("myJSON", data2Send.toString()); // store value as "myJSON" variable
如果需要,您可以将 {“ids”:[{“id”:“3767”},{“id”:“118156”}]}
数据引用为 ${myJSON}
。
该方法将适用于任意数量的“id”变量。
引用:
我有一个vertx服务器应用程序,在那里我收到单客户端请求,从服务器,我需要进行两次阻塞调用。例如,一个调用后端系统A,另一个调用后端系统B。我希望同时调用两个系统。我需要等待两个调用的响应,然后合并两个调用中的两个数据,然后将响应发送回客户端。我不知道如何在工人垂直运动中做到这一点。 有谁能推荐vertx中最好的方法吗?
我正在使用最新版本的JMeter,并试图从JMeter发出POST请求,但我无法看到更改HTTP方法的下拉列表。你能告诉我为什么我看不到下拉列表吗? 请在下面找到JMeter的屏幕截图。它没有用于指定HTTP方法的下拉列表。
我正在用空手道测试做一些测试。 首先是一个职位,期待一个201和一个位置。 第二,使用位置from response来执行get。 有人知道我怎么用空手道吗? 下面的代码是我的尝试,在许多其他代码之后。 但是我得到了: 我不明白为什么。 [编辑] 经过彼得的建议,我感谢! 打印返回: 08:59:33.610[主]信息网。凭直觉。空手道-[打印][”https://www.test.com/enp
我们有一个登录后显示的用户仪表板。仪表板由多个小部件组成。每个小部件从单独的restful服务中提取内容。例如:新闻/邮件/问题/警报。每个小部件在加载到页面上后调用服务。这样就有多个webservice调用。 有没有办法减少多次通话。 它的工作方式是当第一次加载页面时,服务应该在单个调用中返回所有小部件的聚合数据。 每个服务也应该独立可用,以便可以用于刷新单个小部件和其他系统集成。 注意:小部件
问题内容: 我是liferay portlet开发的初学者,我正在开发一个接收http get请求,处理一些信息并且必须返回json对象的portlet。我的问题是我的Portlet发送了整个html页面,而不仅仅是json对象。这是我的代码: 我在doView()方法中执行此操作,我知道这不是最佳做法,但目前我对此并不关心。有人可以向我解释如何仅返回json对象,但我阅读了有关serveResp
红色矩形中样本结果的度量值等于0。没有可供查看的响应数据(标题和正文)。 是否可以在采样结果选项卡中获得实数而不是0 0 0 0 0 0 0,并在响应数据选项卡中获得可见的响应?
请帮助我提取使用Jmetm。
我正在尝试进行第三方授权。当我向服务器发送一个POST请求时,它会发送HTML作为响应。