Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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对象数组转换为多条JSON对象消息?_Javascript_Json_Node.js_Ibm Cloud_Node Red - Fatal编程技术网

Javascript 如何将一条消息中包含的JSON对象数组转换为多条JSON对象消息?

Javascript 如何将一条消息中包含的JSON对象数组转换为多条JSON对象消息?,javascript,json,node.js,ibm-cloud,node-red,Javascript,Json,Node.js,Ibm Cloud,Node Red,目前正在创建一个ETL流,运行在Node RED、Node.js和CloudFoundry上的Bluemix上 我正在查询一个Cloudant数据库,并在包含所有文档作为JSON对象的单个JSON数组上获得返回的查询结果 不,我想以流水线的方式单独处理这些。如何将其归档为节点红色 非常感谢 JSON [{ “id”:“c8342b2a.bf0df”, “类型”:“cloudant in”, “z”:“2f0a54f6.110ccc”, “服务”:“nokeredrkie cloudantNoSQ

目前正在创建一个ETL流,运行在Node RED、Node.js和CloudFoundry上的Bluemix上

我正在查询一个Cloudant数据库,并在包含所有文档作为JSON对象的单个JSON数组上获得返回的查询结果

不,我想以流水线的方式单独处理这些。如何将其归档为节点红色

非常感谢

JSON

[{
“id”:“c8342b2a.bf0df”,
“类型”:“cloudant in”,
“z”:“2f0a54f6.110ccc”,
“服务”:“nokeredrkie cloudantNoSQLDB”,
“cloudant”:“,
“名称”:“,
“数据库”:“tweets”,
“搜索”:“全部搜索”,
“设计”:“,
“索引”:“,
“x”:295.70001220703125,
“y”:450.9333190917969,
“电线”:[
[“5e83a34.48cdd5c”]
]
}, {
“id”:“c9411e75.2b1b7”,
“类型”:“调试”,
“z”:“2f0a54f6.110ccc”,
“名称”:“,
“主动”:正确,
“控制台”:“假”,
“完成”:“有效载荷”,
“x”:646.699951171875,
“y”:470.7333679199219,
“电线”:[]
}, {
“id”:“3f1d2018.8f5ec8”,
“类型”:“注入”,
“z”:“2f0a54f6.110ccc”,
“名称”:“,
“主题”:“,
“有效载荷”:“,
“payloadType”:“日期”,
“重复”:“,
“crontab”:“,
“一次”:没错,
“x”:126.70001220703125,
“y”:472.6666564941406,
“电线”:[
[“c8342b2a.bf0df”]
]
}, {
“id”:“5e83a34.48cdd5c”,
“类型”:“功能”,
“z”:“2f0a54f6.110ccc”,
“名称”:“,
“func”:“//msg.payload=JSON.parse(msg.payload);\nmsg.payload=msg.payload[1]。tweet.user.screen_name;\n返回消息;”,
“产出”:1,
“noerr”:0,
“x”:444.70001220703125,
“y”:489.4000549316406,
“电线”:[
[“c9411e75.2b1b7”]
]
}]

Cloudant节点输出到功能节点,如下所示:

var msgs = [];
for (var i = 0; i< msg.payload.length; i++) {
  msgs.push({payload: msg.payload[i]});
}

return [msgs]
var msgs=[];
对于(var i=0;i
这将把数组中的每个项流式传输到流中的下一个节点


编辑:需要将数组包装在另一组[]中,以从相同的输出中获取所有消息。

JSON.parse该字符串,然后使用数组方法如果我理解正确,您希望将单个对象移动到新变量。我说的对吗?您甚至可以尝试
msg.payload.map(函数(项){return{payload:item}})
不确定这是否能在节点RED函数节点的沙盒上下文中工作,但是您可以给它一个tryI,我不确定节点。我的评论是基于JSDear hardillb和@Rajesh的感谢。两个建议的解决方案都有效!最紧凑的一个是:return[msg.payload.map(function(item){return{payload:item}})]现在应该用一个拆分节点来代替它