Получение данных из API логов warcraft с использованием JSON .parse - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в javascript и пытаюсь получить синтаксический анализ этого персонажа из журналов Warcraft в электронную таблицу на листах Google. Пока у меня есть это, но он продолжает регистрировать нулевое значение.

function test() {
  

  var response =
  UrlFetchApp.fetch("https://www.warcraftlogs.com/v1/parses/character/Fistweaverz/Illidan/US? 
  api_key=xxxxx");

  
  var json = response.getContentText();
  var data = JSON.parse(json);

  Logger.log(data["percentile"]);
}

журнал для объекта «данные»:

 [20-06-18 15:21:40:946 EDT] Logging output too large. Truncating
 output. [{estimated=true, rank=236.0, duration=185352.0,
 difficulty=5.0, total=88467.5, percentile=94.8197862291822,
 talents=[{id=196607.0, name=Eye of the Tiger,
 icon=ability_druid_primalprecision.jpg}, {id=116841.0,
 icon=ability_monk_tigerslust.jpg, name=Tiger's Lust}, {name=Fist of
 the White Tiger, id=261947.0, icon=inv_fistofthewhitetiger.jpg},
 {id=116844.0, icon=spell_monk_ringofpeace.jpg, name=Ring of Peace},
 {name=Inner Strength, icon=ability_monk_domeofmist.jpg, id=261767.0},
 {name=Hit Combo, icon=ability_monk_palmstrike.jpg, id=196740.0},
 {name=Whirling Dragon Punch, icon=ability_monk_hurricanestrike.jpg,
 id=152175.0}],
 corruption={activePowers=[{icon=inv_wand_1h_nzothraid_d_01.jpg,
 name=Ineffable Truth, id=318303.0, corruption=12.0}, {name=Lash of the
 Void, corruption=25.0, id=317290.0,
 icon=spell_priest_voidtendrils.jpg}, {corruption=25.0, name=Lash of
 the Void, id=317290.0, icon=spell_priest_voidtendrils.jpg}],
 passivePowers=[{name=Versatile, corruption=20.0, id=315553.0,
 icon=spell_arcane_arcanetactics.jpg}, {name=Versatile, id=315553.0,
 icon=spell_arcane_arcanetactics.jpg, corruption=20.0},
 {corruption=10.0, icon=spell_arcane_arcanetactics.jpg, name=Versatile,
 id=315549.0}, {id=315553.0, name=Versatile,
 icon=spell_arcane_arcanetactics.jpg, corruption=20.0},
 {name=Versatile, corruption=20.0, id=315553.0, icon=

1 Ответ

1 голос
/ 18 июня 2020

Он завернут в массив, вот как вы получаете к нему доступ: data[0]['percentile'];

Если бы это был обычный объект JSON, ваша реализация была бы правильной. Поскольку это не так и было заключено в массив (JSON .parse () делает это), вам нужно будет указать местоположение в массиве до доступа к значениям. Надеюсь, это поможет!

...