Skip to main content
 首页 » 编程设计

json之如何解析 JSON 响应以构建额外的 Paw 请求

2024年11月01日29mengfanrong

https://paw.cloud/

我有以下 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 文本,但这似乎是一个死胡同。

请您参考如下方法:

解决方案一:jq

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

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



在“JQ args”字段中,输入查询(参见 jq tutorial for details on how this works):
.[] | select(.slug == "bigcartel") | .id
在 JSON 输入字段中,右键单击并选择 Response > Response Raw Body。将打开一个弹出窗口,将“请求”字段指向您要从中提取响应正文的请求(您的“列表”请求)。这将自动获取此请求的最新响应的正文。

全部做完!你现在应该有这个设置:



解决方案 2:JavaScript 代码段

Paw 公开 JavaScript 绑定(bind)以编写扩展(例如,上面使用的 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; 
}; 

您可以在 Paw documentation 中找到 Paw 公开的这个 JavaScript API 的文档。在底部的“API 引用”部分下。