JSON.parse 返回未定义的对象



暴雪刚刚关闭了他们的旧API,并进行了更改,因此您需要一个apikey。我将 URL 更改为新的 api,并添加了 API 密钥。我知道该网址是有效的。

var toonJSON = UrlFetchApp.fetch("eu.api.battle.net/wow/character/"+toonRealm+"/"+toonName+"?fields=items,statistics,progression,talents,audit&apikey="+apiKey, {muteHttpExceptions: true})
var toon = JSON.parse(toonJSON.getContentText())

JSON.pase 只返回一个空对象

return toon.toSorce() // retuned ({})

花了很多时间看看我是否能找到问题。 都空了。认为它与"响应标头"有关。

响应标头:http://pastebin.com/t30giRK1(我从 dev.battle.net(暴雪 API 站点(获得它们(JSON:http://pastebin.com/CPam4syG

我认为这是您正在使用的代码。我能够通过打开您的粘贴 JSON http://pastebin.com/raw/CPam4syG 的原始网址来解析它并使用以下代码

var text = document.getElementsByTagName('pre')[0].innerHTML;
var parse = JSON.parse(text);

所以总而言之,我认为是UrlFetchApp.fetch返回{}

所以我发现了问题:

  1. 我需要在 URL 中 https://,因为我在几个小时后发现我有一个 SSL 错误
  2. 如果你只使用toString而不是getContentText,它可以工作。为什么getContentText不起作用,我不确定。

同样的问题,这对我有用(不要忘记粘贴您的密钥(

var toonJSON = UrlFetchApp.fetch("https://eu.api.battle.net/wow/character/"+toonRealm+"/"+toonName+"?fields=items%2Cstatistics%2Cprogression%2Caudit&locale=en_GB&apikey= ... ")

相关内容

  • 没有找到相关文章

最新更新