6

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」または別の「photo-caption」が原因でスクリプトが壊れていることがわかるように、NaN を出力しています。

キー名にハイフンが含まれていることに問題はありますか? それとも、私はこれについてすべて間違っていますか?

4

3 に答える 3

20

名前にダッシュが含まれている場合は、別の方法でアクセスする必要があります。read に変更var photo500 = this.photo-url-500;しますvar photo500 = this["photo-url-500"];

于 2009-08-05T06:08:15.117 に答える
3

各反復内に追加しないことが最善であることに注意してください。文字列に追加するか、配列にプッシュしてから、反復子が終了した後に一度追加することをお勧めします。dom への追加はコストがかかります。

于 2009-08-05T07:45:15.407 に答える
1

ブラケット表記を使用してメンバーにアクセスします。

var photo500 = this['photo-url-500']; 
于 2009-08-05T06:11:09.807 に答える