如何解析JSON响应以构建其他Paw请求?

Chr*_*ugh 8 json paw-app

https://paw.cloud/

我从不同的API端点返回以下JSON:

[
  {
    "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"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

我想解析这个JSON并在爪子应用程序的另一部分中使用它.有没有人找到这样的例子?我正在尝试自定义JS文本,但这似乎是一个死胡同.

Mic*_*eri 4

方案一:jq

根据他们的网站,“jq 是一个轻量级且灵活的命令行 JSON 处理器”。您可以在 Paw 中进行 jq 查询。我们将使用它从您最新的回复中自动提取字段的 ID。

在 URL 字段(您希望在其中拥有此“智能 ID”),右键单击并选择“jq JSON 处理器”。

在 Paw 中选择 jq JSON 处理器以从 jq 中提取字段

在“JQ args”字段中,输入查询(有关其工作原理的详细信息,请参阅 jq 教程):

.[] | select(.slug == "bigcartel") | .id

在 JSON 输入字段中,右键单击并选择“响应”>“响应原始正文”。将打开一个弹出窗口,将“请求”字段指向您要从中提取响应正文的请求(您的“列表”请求)。这将自动获取该请求的最新响应的正文。

全做完了!您现在应该有这样的设置:

在 Paw 中使用 jq 过滤 HTTP 响应的 JSON 正文

解决方案 2:JavaScript 代码段

Paw 公开 JavaScript 绑定来编写扩展(例如上面使用的 jq 动态值被编写为扩展)。它还可用于在请求中嵌入小代码片段。它有助于实现更高级的设置。

右键单击需要插入 ID 的 URL 字段。选择“扩展”>“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;
};
Run Code Online (Sandbox Code Playgroud)

您可以在底部“API 参考”部分下的Paw 文档中找到 Paw 公开的 JavaScript API 的文档。