2016-02-15 238 views
0

暴雪刚刚关闭了他们的旧API,并做了一个改变,所以你需要一个apikey。我将URL更改为新的api,并添加了API密钥。我知道该网址是有效的。JSON.parse返回undefined对象

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

回答

0

我认为这是你正在使用的代码 我能够解析它。打开你的引擎收录JSON http://pastebin.com/raw/CPam4syG 的原始URL并使用下面的代码

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

因此得出结论,我认为它是真实返回UrlFetchApp.fetch {}

+0

你有什么想法如何得到UrlFetchApp.fetch工作?我还得出结论,这是一个有效的JSON。 –

+0

对不起,我对那个图书馆并不熟悉 – Napoleon

0

所以我发现的问题:

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

是同样的问题,这对我的作品(不要忘记粘贴键)

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