0

jsonフィードを取得して、アーティストの名前を表示しようとしています。element.artistという行に、[object Object]、[object Object]、[objectObject]が表示されます。私はこれに非常に新しいです。これらのオブジェクトの内容をどのように表示しますか?

<script type="text/javascript">
    $(document).ready(function() {
    $.ajax({ 
        type: 'GET', 
        url: 'http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=richie%20hawtin&api_key=53c21030b0e4c4ff051083aacdc6dc54&format=json', 
        data: { get_param: 'value' }, 
        dataType: 'json',
        success: function (data) { 
            $.each(data, function(index, element) {
                $('body').append($('<div>', {
                    text: element.artist
                }));
            });
        }
    });
    });
</script>
4

3 に答える 3

2

それelement.artistはオブジェクトだからです。おそらく、アーティストはのようなプロパティを持っているでしょうelement.artist.name。ブラウザの開発ツールにブレークポイントを設定し、オブジェクトを調べて使用可能なプロパティを確認します。

アップデート

私はあなたが呼ぶことをテストしました。成功のコールバックを次のように変更します。

success: function(data) {
    $('body').append($('<div>', {
        text: data.similarartists.artist.map(function(elem) {
            return elem.name;
        }).join(", ")
    }));
}

ここに、実用的なフィドルがあります:http: //jsfiddle.net/adrianonantua/tU2JA/

于 2012-11-08T15:24:24.783 に答える
1

使用できます

JSON.stringify(value [, replacer] [, space])

データオブジェクトを文字列に変換します。

http://msdn.microsoft.com/en-us/library/cc836459(v=VS.94).aspx

于 2012-11-08T15:25:22.973 に答える
1

この時点で、ピンチでのデバッグを支援するために実行できることが2つあります。

  1. JS /開発者コンソールを開きます(多くの場合F12。FFを使用している場合はFireBugを入手してください)。text:element.artist行にブレークポイントを設定します。次に、ページを再実行し、ブレークポイントに到達したら、「監視」または「変数」(使用しているブラウザに応じて)ウィンドウで要素タグを確認します。これにより、ブレークポイントに到達した時点での完全な階層を確認できます。
  2. $('body')行の前にもう少し「ハック」して「window.element=element;」を追加します。次に、開発者コンソールでJSを直接コンソールに入力し、「element」と入力してEnterキーを押します。これにより、オブジェクトをクリック/展開して詳細を表示するためのリンクが表示されます。
  3. RTFM:)おそらくデータのレイアウトを説明するドキュメントがあります。この場合、さらに簡単にすることができます。ブラウザにhttp://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=richie%20hawtin&api_key=53c21030b0e4c4ff051083aacdc6dc54&format=jsonを読み込むだけで、完全に表示されます。 JSONドキュメント階層。この場合、artistは一連のアーティストです。したがって、最初の名前を出力する場合は、element.artist[0].nameを使用します。あなたのループでは、他の誰かが提案したように、それはelement.artist.nameになります
于 2012-11-08T15:33:35.347 に答える