Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从节点红色的json中获取特定值?_Javascript_Json_Node.js_Parsing_Node Red - Fatal编程技术网

Javascript 如何从节点红色的json中获取特定值?

Javascript 如何从节点红色的json中获取特定值?,javascript,json,node.js,parsing,node-red,Javascript,Json,Node.js,Parsing,Node Red,这是我的程序,我试图找出如何从这个json中提取年龄值。我正在使用ibm bluemix iot watson, 我得到的错误是: 语法错误:未定义:1[对象]^意外标记o 必须从功能节点返回消息对象。代码只返回age值,该值只是一个int 您描述的错误是因为Node RED正在尝试向输出中添加一些内部状态(\u msgid),但无法添加,因为它不是对象。正确的方法是返回整个数据对象,例如 var data = {};

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

语法错误:未定义:1[对象]^意外标记o


必须从功能节点返回消息对象。代码只返回
age
值,该值只是一个int

您描述的错误是因为Node RED正在尝试向输出中添加一些内部状态(
\u msgid
),但无法添加,因为它不是对象。正确的方法是返回整个数据对象,例如

 var data = {};                                                                                             
 var data_tester;                                                
 data.payload ={
     "age" : "24",                                                         
     "hometown" : "Missoula, MT",                                                         
     "gender" : "male"
 },                                                         
 data_tester = JSON.parse(data.payload);     

 return data_tester.age;    
或者,如果您确实只想返回一个整数值:

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

data.payload
之后有一个逗号(
)。它应该是分号(
)。此外,您不需要执行
JSON.parse(data.payload)
。这不是JSON,而是一个对象。它已经被“解析”。msg.payload={“年龄”:“24”,“家乡”:“米苏拉,MT”,“性别”:“男性”};返回msg.payload.age;更改程序后,我得到TypeError:无法分配到24的只读属性“\u msgid”。这是一个完全不同的问题,可能与此代码没有直接关系。试着自己调试它,如果你被卡住了,在这里问另一个问题,详细说明如何重新创建它,以及你做了什么来尝试解决它。
var data = {};
data.payload = 24;
return data;