jQuery - análise de dados JSON - Problemas com o nome da variável
-
22-07-2019 - |
Pergunta
A minha primeira mergulhar em trabalhar com dados JSON. Eu tenho um pouco de experiência com jQuery embora.
Estou postando a este URL (Tumblr api): jyoseph.com/api/read/json
O que eu estou tentando fazer é a saída do JSON que é retornado. O que eu tenho até agora:
$(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>');
});
});
});
Veja o meu post jsbin para todo o script: http://jsbin.com/utaju/edit
Algumas das chaves a partir do tumblr ter "-" hífens neles, e que parecem estar causando um problema. Como você pode ver "foto-url-500" ou outra "foto-legenda" está causando o script para quebrar, é a saída de NaN.
Existe um problema com ter hífens nos nomes-chave? Ou eu estou indo sobre esta tudo errado?
Solução
Se houver traços nos nomes que você precisa para acessá-los de forma diferente. Mudança var photo500 = this.photo-url-500;
para ler var photo500 = this["photo-url-500"];
.
Outras dicas
Por favor, note que é melhor não é para anexar dentro de cada iteração. Melhor para anexar a uma cadeia ou impulso para uma matriz de acréscimo, em seguida, uma vez que após a iteração tenha terminado. Anexando ao dom é caro.
Use a suporte de notação para acessar os membros:
var photo500 = this['photo-url-500'];