服务器https://pastebin.com/nyk9LxH4提供的JSON格式的原始数据
我运行JSON.parse之后的数据 https://pastebin.com/3W8ChSga也是内容变量
function search(teamNum) {
request({
uri:`https://www.thebluealliance.com/api/v3/team/${teamNum}/events/${year}/statuses?X-TBA-Auth-Key=${accessToken}`,
method: 'Get',
timeout: 10000,
followRedirect: true,
maxRedirects: 10
}, function (err, res, body) {
var content = JSON.parse(body);
exportToCsvFile(content);
})
};
获取JSON和下面的函数parseJSONToCSVStr和函数exportToCsvFile进行转换
function exportToCsvFile(jsonData) {
let csvStr = parseJSONToCSVStr(jsonData);
let dataUri = 'data:text/csv;charset=utf-8,' + csvStr;
let exportFileDefaultName = 'data.csv';
}
function parseJSONToCSVStr(jsonData) {
if (jsonData.length == 0) {
return '';
}
let keys = Object.keys(jsonData[0]);
let columnDelimiter = ',';
let lineDelimiter = '\n';
let csvColumnHeader = keys.join(columnDelimiter);
let csvStr = csvColumnHeader + lineDelimiter;
jsonData.forEach(item => {
keys.forEach((key, index) => {
if ((index > 0) && (index < keys.length - 1)) {
csvStr += columnDelimiter;
}
csvStr += item[key];
});
csvStr += lineDelimiter;
});
return encodeURIComponent(csvStr);
}
问题是,当我尝试获取jsonData [0]时,出现TypeError说它是未定义的。而且,如果先将JSON字符串化,然后再对其进行JSON.parse()加密,则最终将JSON逐行返回给我。
从服务器返回给我的JSON是否存在问题?
很抱歉,如果这确实很明显,但是我不熟悉JSON格式。