jQuery - анализ данных JSON - Проблемы с именем переменной
-
22-07-2019 - |
Вопрос
Мой первый опыт работы с данными JSON. У меня есть небольшой опыт использования JQuery.
Я пишу по этому URL (tumblr api): jyoseph.com/api/read/json
То, что я пытаюсь сделать, это вывести json, который возвращается. Что у меня так далеко:
$(document).ready(function(){
$.getJSON("http://jyoseph.com/api/read/json?callback=?",
function(data) {
//console.log(data);
console.log(data.posts);
$.each(data.posts, function(i,posts){
var id = this.id;
var type = this.type;
var date = this.date;
var url = this.url;
var photo500 = this.photo-url-500;
$('ul').append('<li> ' +id+ ' - ' +type+ ' - ' +date+ ' - ' +url+ ' - ' +photo500+ ' - ' + ' </li>');
});
});
});
Смотрите мой пост jsbin для всего скрипта: http://jsbin.com/utaju/edit р>
Некоторые ключи от Tumblr имеют " - " дефисы в них, и это, кажется, вызывает проблемы. Как вы можете видеть " photo-url-500 " или другой «фото-заголовок»; вызывает сбой скрипта, выводит NaN.
Есть ли проблема с дефисами в именах ключей? Или я все об этом говорю не так?
Решение
Если в именах есть тире, вам нужно получить к ним доступ по-разному. Замените var photo500 = this.photo-url-500;
на var photo500 = this [" photo-url-500 "];
.
Другие советы
Обратите внимание, что лучше не добавлять внутри каждой итерации. Лучше добавить в строку или вставить в массив, а затем добавить один раз после завершения итератора. Присоединиться к дому дорого.
Используйте нотацию с скобками для доступа к участникам. р>
var photo500 = this['photo-url-500'];