应该以JSON格式显示Google表格数据的网址显示内部错误

时间:2019-04-30 06:44:13

标签: laravel google-sheets

我想将Google表格的数据转换为JSON格式,以便可以在我的网站上使用它。但是,每当网站尝试获取JSON文件时,我都会收到500错误。

我已经尝试了各种方法将工作表转换为可在Internet上使用的JSON

/**
* "admin_edit"={
*     "method"="PUT", "path"="/api/users/{id}",
*     "normalization_context"={"groups"={"admin:write"}},
*     "access_control"="is_granted('ROLE_ADMIN')"
* }
*/

1 个答案:

答案 0 :(得分:0)

我有同样的问题;我可以通过直接从pubhtml页面解析html以输出类似的JSON格式来解决此问题:

使用“发布到网页”链接代替使用Google Sheet ID。

我跳过了一些行,因为有些行是冻结行,但是您应该能够根据需要修改代码。

function importGoogleSheets(publishedUrl, sheetId, onSuccess, onError) {

        var headers = [];
        var rows;

        $.ajax({
            url: publishedUrl+'?gid='+sheetId+'&single=true',
            success: function(data) {
                data = $.parseHTML(data)[5];
                htmldata = data;
                rows = data.getElementsByTagName('tr');

                for (var i = 0; i < rows[1].cells.length; i++) {
                    headers[i] = 'gsx$' + rows[1].cells[i].textContent.toLowerCase().replace(/[^0-9a-z]*/g, '');
                }

                for (var i = 3; i < rows.length; i++) {
                    temp = {};
                    for (var h = 1; h < headers.length; h++) {
                        temp[headers[h]] = {'$t': rows[i].cells[h].textContent};
                    }
                    all_data[i - 3] = temp;
                }
                onSuccess(all_data);
            },
            error: function(data) {
                onError(data);
            }
        });
    }

不过请注意,它与供稿不同,它包含任何空行,因此您可能希望根据某列过滤ouptut。