簡體   English   中英

JSON.parse返回未定義的對象

[英]JSON.parse returning undefined object

暴雪只是關閉了他們的舊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

我認為這是您正在使用的代碼。 通過打開pastebin JSON的原始URL 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= ... ")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM