节点红色JSON对象

Node red JSON object

我在节点红色中有这样的对象消息:

{ chatId: 111111111, messageId: 1111, type: "message", content: "VENT Auto", date: "2017-12-28T19:46:45.000Z",inbound: true }

我想解析此消息并编写如下函数:

if (chatId==111111111){return msg;} 

我试过这些:

这是节点红色中的函数:

msg=msg.payload.chatId
return msg

我想在输出中看到 chatid :

if (msg.payload.chatid== 11111111){return msg)

而 msg 是此函数的输出:

[{"id":"b068944.8218168","type":"chatbot-telegram-receive","z":"52d0aba5.3f0a3c","bot":"","x":170,"y":600,"wires":[["f479d424.fe9e3"]]},{"id":"f479d424.fe9e3","type":"function","z":"52d0aba5.3f0a3c","name":"","func":"\nreturn msg;","outputs":1,"noerr":0,"x":370,"y":620,"wires":[["c8f111dc.9ac8d"]]},{"id":"ba82cead.cdf808","type":"change","z":"52d0aba5.3f0a3c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.content","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":620,"wires":[["5f96e508.3d69cc"]]},{"id":"c8f111dc.9ac8d","type":"function","z":"52d0aba5.3f0a3c","name":"","func":"msg=msg.payload.chatId\nreturn msg\n","outputs":1,"noerr":0,"x":330,"y":700,"wires":[["ba82cead.cdf808"]]}]

我向电报机器人发送消息,我想将聊天 ID 与我的聊天 ID 进行比较。

您应该始终 return 来自函数节点的整个消息对象。您正在尝试 return 只是一个字符串,这是行不通的。

如果您只是想阻止传递与 ID 不匹配的消息,您可以采用以下两种方法之一。

  1. 使用以下代码的功能节点:

    if (msg.payload.chatId == "111111111") {
      return msg;
    }
    

    如果 chatId111111111

  2. ,这将只允许消息通过
  3. 使用具有以下内容的切换模式: