2016-02-15 280 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= ... ")