【发布时间】:2012-05-18 02:30:34
【问题描述】:
我有一个简单的脚本,可以提取大约 30,000 个 JSON 字符。
当我尝试使用JSON.parse() 或Utilities.jsonParse(); 解析它时,我得到SyntaxError: Unexpected token: F (line 12)
function refresh() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.clear();
var text = UrlFetchApp.fetch("http://blablah/json");
Logger.log(text.getContentText());
//error SyntaxError: Unexpected token: F (line 12)
json = JSON.parse(text);
)
记录器仅显示大约 59 行 JSON,但有人告诉我记录器有空间限制 - 但我不太确定是不是这样。
在我自己的服务器上运行,JSON.parse 可以很好地解析数据,jQuery get() 也是如此。
所以我认为 UrlFetchApp.fetch() 无法获取长文件?
很难接受,我没有找到关于它的文档:(
【问题讨论】:
-
添加行“Logger.log(text.getContentText().length);”以确定实际提取了多少个字符。
-
为什么不假设它得到了所有数据呢?我使用 UrlFetch 来捕获大量数据,我认为 30K 应该就可以了。只需使用 Utilities.jsonParse() - 你会收到错误吗? Eric 的推荐也很棒。
-
@mzimmerman
JSON.parse优于Utilities.jsonParse。我现在不记得有什么区别了,但是在谷歌论坛上搜索应该可以找到。