Javascript 节点red将JSON或CSV提要检索到XDB中

Javascript 节点red将JSON或CSV提要检索到XDB中,javascript,json,csv,node-red,Javascript,Json,Csv,Node Red,版本 节点红色v0.16.2 XDB v1.2.2 Grafana v4.2.0 Ubuntu 16.04.2 我想从我当地的官方气象站获取一些天气观测资料。我可以在& 我试图用节点RED检索JSON提要 我使用了一个HTTP请求节点,它返回一个经过解析的JSON对象 它返回此嵌套数组: 对象 观察结果:对象 注意:数组[1] 0:对象 版权所有:“2017澳大利亚联邦气象局版权所有。有关更多信息,请参阅:urlhere-urlhere” 版权所有\u url:“url此处” 免责

版本

  • 节点红色v0.16.2
  • XDB v1.2.2
  • Grafana v4.2.0
  • Ubuntu 16.04.2
我想从我当地的官方气象站获取一些天气观测资料。我可以在&

  • 我试图用节点RED检索JSON提要
  • 我使用了一个HTTP请求节点,它返回一个经过解析的JSON对象
它返回此嵌套数组:

对象

  • 观察结果:对象
    • 注意:数组[1]
    • 0:对象
      • 版权所有:“2017澳大利亚联邦气象局版权所有。有关更多信息,请参阅:urlhere-urlhere”
      • 版权所有\u url:“url此处”
      • 免责声明\u url:“url此处”
      • 反馈\u url:“url此处”
    • 标题:数组[1]
    • 0:对象
      • 刷新消息:“美国东部时间2017年5月2日星期二晚上9:32发布”
      • ID:“IDV60801”
      • 主\u ID:“IDV60800”
      • 名称:“穆拉宾机场”
      • 州时区:“维克”
      • 时区:“东部时间”
      • 产品名称:“天气观测”
      • 州:“维多利亚”
    • 数据:数组[155]
    • [0…9]
      • 0:对象
      • 排序顺序:0
      • 世界气象组织:94870
      • 名称:“穆拉宾机场”
      • 历史记录\u产品:“IDV60801”
      • 本地日期时间:“下午2/09:30”
      • 本地\u日期\u时间\u完整:“20170502213000”
      • aifstime\u utc:“20170502113000”
      • 纬度:-38
      • lon:145.1
      • 表观\u t:5.4
      • 云:“-”
      • cloud\u base\u m:null
      • cloud\u oktas:null
      • 云类型:“-”
      • 云类型\u id:
      • delta\u t:2.5
      • 阵风时速:19
      • 阵风:10级
      • 空气温度:9
      • dewpt:3.2
      • 按:1025.8
      • 按msl:1025.8
      • 按下按钮:1025.8
      • 按下按钮:“-”
      • 雨水跟踪:“1.0”
      • rel\u hum:67
      • 海州:“-”
      • sweel\u dir\u措辞为:“-”
      • 膨胀高度:null
      • 膨胀期:null
      • 可视公里数:“10”
      • 天气:“-”
      • 风向:“ESE”
      • 风速(公里小时):11
      • *风速:*6
我只需要数据:数组,因此我使用了一个函数节点“提取值”,代码如下:


msg.payload=msg.payload.observations.data[0]
返回味精

上述函数返回此对象:

  • 排序顺序:0
  • 世界气象组织:94870
  • 名称:“穆拉宾机场”
  • 历史记录\u产品:“IDV60801”
  • 本地日期时间:“下午2/09:30”
  • 本地\u日期\u时间\u完整:“20170502213000”
  • aifstime\u utc:“20170502113000”
  • 纬度:-38
  • lon:145.1
  • 表观\u t:5.4
  • 云:“-”
  • cloud\u base\u m:null
  • cloud\u oktas:null
  • 云类型:“-”
  • 云类型\u id:
  • delta\u t:2.5
  • 阵风时速:19
  • 阵风:10级
  • 空气温度:9
  • dewpt:3.2
  • 按:1025.8
  • 按msl:1025.8
  • 按下按钮:1025.8
  • 按下按钮:“-”
  • 雨水跟踪:“1.0”
  • rel\u hum:67
  • 海州:“-”
  • sweel\u dir\u措辞为:“-”
  • 膨胀高度:null
  • 膨胀期:null
  • 可视公里数:“10”
  • 天气:“-”
  • 风向:“ESE”
  • 风速(公里小时):11
  • 风速:6
如果我通过存储节点将其放入XDB,我会收到以下错误:

错误:出现400个错误请求错误:{“错误”:“无法解析'bom obs moorabbin airport aifstime\u utc=\'201705130700000\”,气温=13.6,表面温度=10.6,云=\“-\”,云基m=null,云oktas=null,云类型=\“-\”,云类型id=null,增量t=2.9,dewpt=7.6,阵风kmh=17,阵风kt=9,历史产品=\“IDU-01”,本地时间=60813/05:00pm\”,本地日期时间完整=“20170513170000\”,lon=145.1,名称=“莫拉宾机场”,按=1023.5,按msl=1023.5,按qnh=1023.5,按趋势=“-”,雨迹=“0.0\”,rel-hum=67,海州=“-”,排序顺序=0,涌浪方向=零,涌浪高度=零,涌浪周期=10公里,风浪方向=“SSW-”\,风速kmh=13,风速kt=7,wmo=94870:无效数字“}

相反,如果我在“提取值”和XDB存储节点之间插入一个JSON节点,这就是我得到的调试输出:

{“排序顺序”:0,“wmo”:94870,“名称”:“穆拉宾机场”,“历史产品”:“IDV60801”,“本地日期时间”:“13/05:00pm”,“本地日期时间完整”:“20170513170000”,“aifstime\u utc”:“20170513070000”,“lat”:-3
return {
  payload: {
    data : msg.payload.observations.data[0]
  }
};