2

JqueryのgetJSON関数に少し問題があります。

ここに私のjson

{ "entries": [
    {
        "type": "status",
        "SID": "X999_Y999",
        "from": {
            "name": "Tom Brady",
            "id": "X12"
        },
        "message": "Json message no 1! ",
        "actions": {
            "UP_link": "123456",
            "Comment_link": "7891011"
        },
        "created_time": "2010-08-02T21:27:44+0000",
        "Comments": [
            {
                "CID": "1234",
                "name": "Tom Brady",
                "UID": "1234",
                "Text": "My comment",
                "when_comment": "2010-08-02T21:27:44+0000"
            },
            {
                "CID": "1234",
                "name": "Tom Brady",
                "UID": "1234",
                "Text": "My comment",
                "when_comment": "2010-08-02T21:27:44+0000"
            }
        ]
    }
] }

私はこれを使って読んだ

$.getJSON('json4test.json',
    function(data) {            
        $.each(data.entries, function(entryIndex, entry) {
        var html = '<li class="top-level">name=' + this.from.name +', comment = '+this.Comments.Text+ '</li>';
        $("#results").append(html);
        });
    });

私は実際にthis.from.nameの配列を読み取ることができますが、なぜthis.Comments.Textを読み取った結果が「未定義」であるのですか。

どうすればこれを正しく読むことができますか?

4

1 に答える 1

3

this.Comments.Textは配列なので、それもループする必要があります。

$.each(this.Comments, [...]);

Textループ内では、各コメントのプロパティにアクセスできます。jsbin の例を参照してください(コンソールで出力を確認してください)。

于 2012-07-02T13:51:49.397 に答える