0

返されたデータからそれぞれを取得したいのですが、できませnameん。logo問題は、JSON の値がデータベースから取り出され、エスケープされることです。

以下に投稿したデータからそれぞれnameを取得するにはどうすればよいですか?logo

コード:

$.getJSON('/sms/fetch_smartpages/', function (data) {
    var items = [];

    $.each(data, function (key, val) {
        $('#linkHolder').append('<p>' + val + '</p>');

        items.push('<li id="' + key + '">' + val.fields.JASON.NAME + '</li>');
    });
});

これは、戻ってきたときのデータです。

[
    {
        "pk": 11,
        "model": "content",
        "fields": {
            "logo": "",
            "json": "{\"name\":\"sas\",\"logo\":\"\",\"theme\":\"a\",\"pages\":[{\"id\":\"1366993986180\",\"name\":\"Page Name\",\"type\":\"basic\",\"components\":{\"img\":\"\",\"text\":\"\"}}]}",
            "link": null,
            "name": "sas",
            "user": 2
        }
    },


    {
        "pk": 18,
        "model": "content",
        "fields": {
            "logo": "",
            "json": "{\"name\":\"test123456789\",\"logo\":\"\",\"theme\":\"e\",\"pages\":[{\"id\":\"1366994946585\",\"name\":\"Page Name\",\"type\":\"basic\",\"components\":{\"img\":\"\",\"text\":\"\"}}]}",
            "link": 18,
            "name": "test123456789",
            "user": 2
        }
    }
]
4

4 に答える 4

1

これを試すが、テストされていない

items.push('<li id="' + key + '">' + val.fields.name + '</li>');
于 2013-04-29T12:02:45.703 に答える
1
 $.each(data, function (index, val) {

      items.push('<li id="' + index+ '">' + val.fields.name + '</li>');


    });
于 2013-04-29T12:02:48.397 に答える
1

It seems that the json element of val.fields actually is a string, not a json object. So val.fields.json.name will not work, as val.fields.json is not a json object. You either have to fix the server so it returns a proper json object at this location, or you need to parse that particular fields to JSON.

Edit

However, it appears that name and logo also are set directly to var.fields, so var.fields.name and var.fields.logo should work.

于 2013-04-29T12:08:35.933 に答える