我正在尝试将此JSON转换为csv,但我正在获取JSON [0]未定义

时间:2019-09-23 09:03:41

标签: javascript arrays json

服务器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格式。

0 个答案:

没有答案