【问题标题】:how to get specific value from json in node red?如何从节点红色的json中获取特定值?
【发布时间】:2016-10-23 08:24:41
【问题描述】:
 var data = {};                                                                                             
 var data_tester;                                                
 data.payload ={
     "age" : "24",                                                         
     "hometown" : "Missoula, MT",                                                         
     "gender" : "male"
 },                                                         
 data_tester = JSON.parse(data.payload);     

 return data_tester.age;    

这是我的程序,我正在尝试找出如何从这个 json 中提取年龄值。我正在使用 ibm bluemix io​​t watson, 我得到的错误是:

SyntaxError: undefined:1 [object Object] ^ Unexpected token o

【问题讨论】:

  • data.payload 后面有一个逗号 (,)。它应该是一个分号 (;)。此外,您不需要执行JSON.parse(data.payload)。那不是 JSON,它是一个对象。它已经“解析”了。
  • msg.payload ={ "age" : "24", "hometown" : "Missoula, MT", "gender" : "male" };返回 msg.payload.age;更改程序后,我收到 TypeError: Cannot assign to read only property '_msgid' of 24
  • 这完全是一个不同的问题,可能与此代码没有直接关系。尝试自己调试它,然后如果遇到困难,请在此处提出另一个问题,详细说明如何重新创建它以及您为尝试解决它所做的工作。

标签: javascript json node.js parsing node-red


【解决方案1】:

你必须从一个函数节点返回一个消息对象。您的代码仅返回 age 值,它只是一个 int

您描述的错误是因为 Node-RED 正在尝试将一些内部状态 (_msgid) 添加到输出中,但不能因为它不是对象。做事的正确方法是返回整个数据对象,例如

var data = {};
data.payload ={
  "age" : "24",
  "hometown" : "Missoula, MT",
  "gender" : "male"
};
return data;

或者如果你真的只想返回一个整数值:

var data = {};
data.payload = 24;
return data;

【讨论】:

    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2022-11-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多