Frage

Mein erster delve in mit JSON-Daten arbeiten. Ich habe ein wenig Erfahrung mit jQuery though.

Ich bin Entsendung dieser URL (tumblr api): jyoseph.com/api/read/json

Was ich versuche zu tun ist, gibt die json, die zurückgegeben werden. Was ich habe, so weit:

$(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>'); 
      }); 

  }); 

});

mein jsbin Beitrag für das gesamte Skript Siehe: http://jsbin.com/utaju/edit

Einige Tasten von tumblr haben „-“ Bindestriche in ihnen, und das scheint ein Problem zu verursachen. Wie Sie „Foto-url-500“ sehen oder eine andere „Foto-Beschriftung“ verursachen das Skript zu brechen, es ist die Ausgabe NaN.

Gibt es ein Problem mit Bindestrichen in den Schlüsselnamen zu haben? Oder bin ich über diese gehen alle falsch?

War es hilfreich?

Lösung

Wenn es Striche in den Namen, die Sie benötigen, um sie anders zu gelangen. Ändern var photo500 = this.photo-url-500; var photo500 = this["photo-url-500"]; zu lesen.

Andere Tipps

Bitte beachten Sie, es ist am besten nicht in jeder Iteration anhängen. Besser in einen String oder drücken auf ein Array anhängen dann einmal anhängen nach der Iterator beendet hat. Anfügen zum Dom ist teuer.

Mit dem Dirac-Notation die Mitglieder zuzugreifen:

var photo500 = this['photo-url-500']; 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top