跳到主要内容

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