Ошибка «Не удается прочитать свойство неопределенного» в ответе API Twitch - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь отобразить все display_name значения этой страницы JSON (максимум 25), однако я получаю сообщение об ошибке «не могу прочитать свойство undefined».Мой код выглядит следующим образом:

$(document).ready(function(){
  var url= "https://api.twitch.tv/kraken/channels/sodapoppin/follows?client_id=40pbvj5imeg5ma36gla9p8ryfkyyyb&limit=100";
  $("button").click(function() {
    $.getJSON(url, function(result) {
      $.each(result, function(string, field) {
        // $.each(string, function(k, v) {
        $("#fccStatus").append(string.follows.user + " ");
        // });
      });
    });
  });
}); 

Заранее спасибо, ребята!

1 Ответ

0 голосов
/ 11 октября 2018

Есть две проблемы.Во-первых, вам нужно перебрать result.follows, а не result.Во-вторых, аргумент string на самом деле является целочисленным индексом текущего объекта в массиве.Вам нужно использовать field вместо этого.Попробуйте это:

$(document).ready(function() {
  var url = "https://api.twitch.tv/kraken/channels/sodapoppin/follows?client_id=40pbvj5imeg5ma36gla9p8ryfkyyyb&limit=100";
  
  $("button").click(function() {
    $.getJSON(url, function(result) {
      $.each(result.follows, function(i, field) {
        $("#fccStatus").append('<p>' + field.user.display_name + '</p>');
      });
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button>Click me</button>
<div id="fccStatus"></div>

Обратите внимание, что я изменил выходной HTML, чтобы показать display_name пользователя, обернутого в p элементы для ясности, но это может быть легко исправлено при необходимости.

...