0

我想从返回的数据中获取每一个数据namelogo但我做不到。问题可能是 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

由于您使用的是 jQuery,因此请尝试使用 parseJSON 函数来创建字典。然后您可以像普通字段一样获取名称和徽标。

http://api.jquery.com/jQuery.parseJSON/

于 2013-04-29T12:07:31.353 回答
1

似乎 的json元素val.fields实际上是一个字符串,而不是一个 json 对象。所以val.fields.json.name不会起作用,因为val.fields.json它不是 json 对象。您要么必须修复服务器,使其在此位置返回正确的 json 对象,要么需要将特定字段解析为 JSON。

编辑

但是,似乎nameandlogo也直接设置为var.fields,因此var.fields.name并且var.fields.logo应该可以工作。

于 2013-04-29T12:08:35.933 回答
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 回答