跳到主要内容

HTTP 请求-JSON 响应

获取解析后的 JSON 响应

问题背景​

将 HTTP 请求的 JSON 响应作为解析后的 Javascript 对象返回。

解决方案​

HTTP 请求 节点默认会将 JSON 响应的主体以字符串形式返回在 msg.payload 中。更改此节点的返回 (Return) 配置,将其设置为解析后的 JSON 对象 (parsed JSON object),以便在 msg.payload 中解析 JSON 响应,下游节点可以轻松访问。

示例​

通过更改 HTTP 请求 节点的配置,将 JSON 响应解析为 Javascript 对象。日志输出 节点已被修改为仅显示解析后的 JSON 响应的 title 属性。

该流程包含四个节点:

  • 注入 节点: 配置为每当触发时,发送字符串 "2" 作为 msg.payload (代表帖子 ID)。
  • 调整消息属性 节点: 将 msg.payload 的值复制到 msg.post 属性中。
  • HTTP 请求 节点: 发送 GET 请求。其 URL 配置为 https://jsonplaceholder.typicode.com/posts/{{post}}。关键在于,该节点的“返回 (Return)”选项被设置为“解析后的 JSON 对象 (parsed JSON object)”。 http-request-parsed-json-config
  • 日志输出 节点: 配置为仅显示 msg.payload.title 的内容。

http-request-parsed-json

示例JSON​

[{"id":"14c60a10.794df6","type":"http request","z":"db204302463e78d0","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://jsonplaceholder.typicode.com/posts/{{post}}","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":560,"y":160,"wires":[["b4ea8dd4.61a05"]]},{"id":"b4ea8dd4.61a05","type":"debug","z":"db204302463e78d0","logName":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload.title","targetType":"msg","statusVal":"","statusType":"auto","logLevel":"info","dataType":"field","syntax":"mustache","template":"","x":740,"y":160,"wires":[]},{"id":"3479192a.04f016","type":"inject","z":"db204302463e78d0","name":"post id","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"","payload":"2","payloadType":"str","x":150,"y":160,"wires":[["e69250cf.368fd"]]},{"id":"e69250cf.368fd","type":"change","z":"db204302463e78d0","name":"","rules":[{"t":"set","p":"post","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":160,"wires":[["14c60a10.794df6"]]}]

运行结果​

部署此流程并触发 注入 节点时,HTTP 请求 节点将向 https://jsonplaceholder.typicode.com/posts/2 发送请求。由于 HTTP 请求 节点配置为返回解析后的 JSON 对象,并且 日志输出 节点配置为仅显示 payload.title,因此调试面板中将显示以下内容:

"qui est esse"

http-request-parsed-json-result