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?

Foi útil?

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']; 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top