如何解析 JSON 响应以构建额外的 Paw 请求?
How to parse a JSON response to build additional Paw request?
我有以下 JSON 从不同的 API 终点返回:
[
{
"id": 1,
"name": "BigCartel",
"slug": "bigcartel",
"logo_cdn_url": "http://placehold.it/200x200",
"active": true,
"authentication_type": {
"description": "Oauth Authentication Token",
"slug": "oauthauthenticationtoken"
}
},
{
"id": 2,
"name": "Lightspeed Retail",
"slug": "lightspeed_retail",
"logo_cdn_url": "http://placehold.it/200x200",
"active": true,
"authentication_type": {
"description": "Oauth Authentication Token",
"slug": "oauthauthenticationtoken"
}
}
]
我想解析此 JSON 并将其用于 paws 应用程序的另一部分。有没有人找到这样的例子?我正在尝试自定义 JS 文本,但这似乎是一个死胡同。
解决方案 1:jq
根据他们的网站,"jq is a lightweight and flexible command-line JSON processor"。你可以在 Paw 中进行 jq 查询。我们将使用它从您的最新回复中自动提取字段 ID。
在 URL 字段(您想要 "smart ID" 的位置),右键单击并选择 "jq JSON processor"。
在 "JQ args" 字段中,输入查询(参见 jq tutorial for details on how this works):
.[] | select(.slug == "bigcartel") | .id
在 JSON 输入字段中,右键单击并选择 Response > Response Raw Body。将打开一个弹出窗口,将 "Request" 字段指向您要从中提取响应正文的请求(您的 "list" 请求)。这将自动获取此请求的最新响应的正文。
大功告成!你现在应该有这个设置:
解决方案 2:JavaScript 代码段
Paw 公开 JavaScript 绑定以写入扩展(例如,上面使用的 jq 动态值被写入为扩展)。它还可以用于在请求中嵌入小代码片段。这有助于实现更高级的设置。
右击 URL 字段,您需要在其中插入您的 ID。选择扩展 > JS 脚本。在弹出窗口中,粘贴此代码:
function evaluate(context){
var request = context.getRequestByName("List");
var httpExchange = request.getLastExchange();
var body = JSON.parse(httpExchange.responseBody);
for (var i = 0; i < body.length; i++) {
var member = body[i];
if (member.slug == "bigcartel") {
return member.id;
}
}
return null;
};
您可以在底部 "API Reference" 部分的 Paw documentation 中找到 Paw 公开的这个 JavaScript API 的文档。
我有以下 JSON 从不同的 API 终点返回:
[
{
"id": 1,
"name": "BigCartel",
"slug": "bigcartel",
"logo_cdn_url": "http://placehold.it/200x200",
"active": true,
"authentication_type": {
"description": "Oauth Authentication Token",
"slug": "oauthauthenticationtoken"
}
},
{
"id": 2,
"name": "Lightspeed Retail",
"slug": "lightspeed_retail",
"logo_cdn_url": "http://placehold.it/200x200",
"active": true,
"authentication_type": {
"description": "Oauth Authentication Token",
"slug": "oauthauthenticationtoken"
}
}
]
我想解析此 JSON 并将其用于 paws 应用程序的另一部分。有没有人找到这样的例子?我正在尝试自定义 JS 文本,但这似乎是一个死胡同。
解决方案 1:jq
根据他们的网站,"jq is a lightweight and flexible command-line JSON processor"。你可以在 Paw 中进行 jq 查询。我们将使用它从您的最新回复中自动提取字段 ID。
在 URL 字段(您想要 "smart ID" 的位置),右键单击并选择 "jq JSON processor"。
在 "JQ args" 字段中,输入查询(参见 jq tutorial for details on how this works):
.[] | select(.slug == "bigcartel") | .id
在 JSON 输入字段中,右键单击并选择 Response > Response Raw Body。将打开一个弹出窗口,将 "Request" 字段指向您要从中提取响应正文的请求(您的 "list" 请求)。这将自动获取此请求的最新响应的正文。
大功告成!你现在应该有这个设置:
解决方案 2:JavaScript 代码段
Paw 公开 JavaScript 绑定以写入扩展(例如,上面使用的 jq 动态值被写入为扩展)。它还可以用于在请求中嵌入小代码片段。这有助于实现更高级的设置。
右击 URL 字段,您需要在其中插入您的 ID。选择扩展 > JS 脚本。在弹出窗口中,粘贴此代码:
function evaluate(context){
var request = context.getRequestByName("List");
var httpExchange = request.getLastExchange();
var body = JSON.parse(httpExchange.responseBody);
for (var i = 0; i < body.length; i++) {
var member = body[i];
if (member.slug == "bigcartel") {
return member.id;
}
}
return null;
};
您可以在底部 "API Reference" 部分的 Paw documentation 中找到 Paw 公开的这个 JavaScript API 的文档。