我正在编写一个Web数据连接器以将Tableau连接到KCL空气质量数据API(http://api.erg.kcl.ac.uk/AirQuality/help),并且由于所有标头中均存在@符号,因此无法正确解析JSON输出。尝试将这些字符留在其中时,我收到无效的字符错误,并且在解析之前无法找到有效的方法来替换它们。
我已经可以使用此方法成功解析其他API输出,其中标头不包含任何特殊字符。我已经研究了转义或替换@字符以获取与过去相似的格式的方法,但是没有找到合适的格式。
我的API输出是以下格式的JSON:
{
"Groups": {
"Group": [
{
"@GroupName": "All",
"@Description": "All current network LAs",
"@WebsiteURL": "http://www.erg.kcl.ac.uk/"
},
{
"@GroupName": "AroundLondon",
"@Description": "Selection of boroughs around London",
"@WebsiteURL": "http://www.londonair.org.uk/"
}
]
}
}
我正在尝试使用如下所示的for循环进行解析,然后将其匹配到我已经定义的表模式:
var feat = resp.Groups.Group,
tableData = [];
// Iterate over the JSON object
for (var i = 0; i < feat.length; i++) {
tableData.push({
"GroupName": feat[i].@GroupName,
"Description": feat[i].@Description,
"WebsiteURL": feat[i].@WebsiteURL
});
}
在此示例代码中,我在标头中添加了@符号,但是此版本的代码导致无效的字符错误: 语法错误:无效字符:'@'文件:http://localhost:8080/js/wdc.js行:35
任何解决此问题的帮助将不胜感激!