【问题标题】:Google Script: JSON.parse fails for no apparent reason谷歌脚本:JSON.parse 无缘无故失败
【发布时间】:2015-01-15 21:19:53
【问题描述】:

我在谷歌脚本中有这个函数可以从网络上获取 JSON,但是当我尝试执行它时它失败了,引用:

SyntaxError: Unexcpected character in string: '\''

脚本:

function getTheFeed(url){
    var response = UrlFetchApp.fetch(url);
    var json = response.getContentText();
    var Jdata = JSON.parse(json);
    Jdata = json;
    return Jdata;
}

我已经测试了 URL,将它导入一个字符串并对其执行 JSON.parse,我在 Google Chrome 中没有收到任何错误。

还有其他想法吗?

更新:在执行 Logger.Log 之后,结果表明 JSON 在 8KB 响应后被剪切。请求结束的地方没有任何冲突...

仍在寻找回复...

【问题讨论】:

  • 可以加个console.log(json); 分享一下结果看看你要解析什么吗?
  • 是的,我刚刚做了,看起来 JSON 不完整...为什么 JSON 不完整?
  • 响应在 8KB 后结束。
  • 这可能是由于应用脚本URL fetch URL length 中的谷歌服务配额限制为8kb ......所以可能错误解析是因为响应不完整。在此处查看当前限制:https://developers.google.com/apps-script/guides/services/quotas
  • 但是,这是标题,这是响应正文?

标签: javascript json google-apps-script google-apps


【解决方案1】:

尝试使用 alert(url) 看看你真正得到了什么。 这可能是一个转义问题,当您直接在地址栏中输入时,有时浏览器会正确处理。

编辑: 不同的浏览器有不同的限制。但通常 URL 的 GET 方法的限制是大约 2,000 个字符。 看: What is the character limit on URL

【讨论】:

  • 我刚刚过度解析了 url,但在 UrlFetchApp.fetch 行上出现错误。所以它不是 URL。
  • 您能否像之前推荐的 albciff 那样添加更多调试并发布?
  • 这取决于浏览器,但如果你有这么长的 URL,请尝试限制你的 GET 参数。也许你可以考虑 POST 请求?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
相关资源
最近更新 更多