@Let_peace

Как исправить ошибку “Cannot read property ' ' of undefined” при работе с JSON и JavaScript?

Работаю с JSON через скрипт JavaScript. JSON файл:
{
  "section_1" : {
    "1_1" : {
      "name" : "№1",
      "description" : "",
      "image" : "images/1_1.jpg"
    },
    "1_2" : {
      "name" : "№2",
      "description" : "",
      "image" : "images/1_2.jpg"
    }
  },
  "section_2" : {
    "2_1" : {
      "name" : "№3",
      "description" : "",
      "image" : "images/2.jpg"
    }
  }
}

JS файл:
$.getJSON('./MyJSON.json', function (data) {
        var out = '';
        for (var section in data){ // вывод всех товаров
            for (var key in section){
                out+='<img src="'+data[section][key].image+'" alt="">';
                out+='<h5>'+data[section][key]['name']+'</h5>';
                if (data[section][key]['description'] != "") {
                    out+='<p>'+data[section][key]['description']+'</p>';
                }
            }  
        }
    });

При загрузке страницы и обращении к значениям объектов консоль выдает следующую ошибку (скрин также приложен): Cannot read property 'image' of undefined. Скрин прилагается.
5f2940a3a357f816804210.png
Подскажите, пожалуйста, что не так делаю?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
for (var section in data) {
  for (var key in data[section]) {
    ...
  }
}
Ответ написан
Seasle
@Seasle Куратор тега JavaScript
Помог - отметь решением \( ゚ヮ゚)/
for (const sectionKey in data) {
    const section = data[sectionKey];

    for (const key in section) { ... }
}

Внутри цикла уже не надо писать data[section].
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы