3

データに問題があります。私の JSON は次のようになります。

[
    {
        "link": {
            "created_at": "2013-10-07T13:31:43+09:00",
            "id": 8,
            "items_count": 4,
            "key": "0iqVSnTU-BtJ1ItVKRe2VMWvRMU",
            "mode": "standard",
            "name": "sdasadads",
            "pusher_key": "1jtsrzl3n6i1DKA3tSZJM6LPnfQ",
            "readonly_key": "R_dD5oHMsruu0YzYVKEOA8hKKXA-r",
            "updated_at": "2013-10-08T14:06:07+09:00",
            "user_id": 2
        }
    },
    {
        "link": {
            "created_at": "2013-10-07T13:32:56+09:00",
            "id": 9,
            "items_count": 1,
            "key": "Mj-6Cc-_qaGlVTPgqKexzeijYNA",
            "mode": "standard",
            "name": "Untitled2",
            "pusher_key": "hGE0D8TSar_H_Gv9MWdpj26gamM",
            "readonly_key": "T53SNKPgyf7KvRUMzDQPaM99AAc-r",
            "updated_at": "2013-10-07T13:33:14+09:00",
            "user_id": 2
        }
    },
    {
        "link": {
            "created_at": "2013-10-11T11:18:06+09:00",
            "id": 10,
            "items_count": 0,
            "key": "X_ZoKxFPHtsvSU5W11gXx1653FU",
            "mode": "standard",
            "name": "Usdadasas",
            "pusher_key": "0PZ860awofRKB9XIrXba-xY6u14",
            "readonly_key": "2rzrRZAaR7UZRK3UbUId8xmFzd4-r",
            "updated_at": "2013-10-11T11:18:06+09:00",
            "user_id": 2
        }
    }
}

私はそのようなリンクのすべての名前を印刷しようとしています:

$.post( "http://0.0.0.0:9292/api/links", function( data ) {
        document.getElementById("test").innerHTML = data[link][0].name;
      });

しかし、うまくいきません。すべての名前をグラブしてhtmlに入れるにはどうすればよいですか?

4

3 に答える 3

5
  • オブジェクトは配列内にあり、その逆ではありません。
  • link文字列としてプロパティ名を含む変数ではなく、リテラル プロパティ名です。

したがって:

data[0]['link']['name']

application/jsonまた、応答にコンテンツ タイプがあることを確認する必要があります。

すべての名前を取得するには、ループを使用して0毎回変更する必要があります。

于 2013-10-21T06:13:01.307 に答える
1

まず、最後の「}」を「]」に変更します(一番上の構造はオブジェクトではなく配列です)

次に、これを試してください

$.post( "http://0.0.0.0:9292/api/links", function( data ) {
    document.getElementById("test").innerHTML = data[0].link.name;
  });
于 2013-10-21T06:18:12.447 に答える
0

Array.prototype.map()は、データ構造から何かを取得する良い方法です。データ変数にテスト データを使用すると、次のようになります。

例はこちら。

<div class="names"></div>
var names = data.map(function (item) {
    return item.link.name
});

document.querySelector(".names").innerHTML = names;
于 2013-10-21T06:19:10.403 に答える