我正在使用NodeRed进行大学项目的帮助。我正在JS(NodeRed)中集成一个JSON API并遇到障碍。这是我正在检索的那种JSON:
{"@SpeciesCode":"NO2","@MeasurementDateGMT":"2016-04-04 00:00:00","@Value":"58.2"}
那" @" sign真的给了我各种各样的麻烦,因为我使用JSON.parse或stringify或者逃避,它要么告诉我"意外的令牌@"或者只是"未定义的值"。
以下是我正在使用的代码:
var body = msg.payload;
var bodyParsed = JSON.parse(body);
var data = bodyParsed.AirQualityData.Data;
var valueStr="@Value";
var value=JSON.stringify(valueStr);
var valueParsed=JSON.parse(value);
var element = data[0].valueParsed;
return {payload:element};
如果你想了解它,请点击此处的数据网址:http://api.erg.kcl.ac.uk/AirQuality/Data/Site/SiteCode=WM6/StartDate=2016-04-04/EndDate=2016-05-04/Json
使用您需要使用括号表示法的变量来访问属性: var element = data [0] [valueParsed];你也不需要字符串化和解析@value只需使用数据[0] [" @ Value"]
所以新代码是
var body = msg.payload;
var bodyParsed = JSON.parse(body);
var data = bodyParsed.AirQualityData.Data;
var element = data[0]["@Value"];
return {payload:element};