如何循环json数组并更新链接

时间:2010-04-14 09:12:24

标签: jquery json

在页面加载时,我会进行一次调用以获取所有收藏链接的当前状态(显示正确的消息:点击订阅,点击取消订阅。

最终密码! :)感谢您的帮助,请查看帖子修订版以查看问题。

$(InitFavorite);

function InitFavorite(){

    var jList = $(".favourite_link");
    var ids_to_check = {};//new Array();

    $.each(jList, function () {
        var id = this.id;
        var object = id.split("_");
        if (!ids_to_check[object[1]]) {
            ids_to_check[object[1]] = [];
        }
        ids_to_check[object[1]].push(object[0]);
    });

    $.ajax({
        type: 'POST',
        url: '/user/subscription/favourite-listing',
        data: ids_to_check,
        dataType: 'json',
         beforeSend: function(x) {
              if(x && x.overrideMimeType) {
               x.overrideMimeType("application/json;charset=UTF-8");
          }
         },
        error: function() {
            //could not load favourites
        },
        success: function(returned_values) {

            $.each(returned_values.favourites.Clip, function(i, item) {
                $('#'+i+'_Clip').html(''+item+'');
            });
            $.each(returned_values.favourites.Playlist, function(i, item) {
                $('#'+i+'_Playlist').html(''+item+'');
            });
        }
    });

1 个答案:

答案 0 :(得分:0)

您必须解析文本,使其成为对象而不是JSON(纯文本):

var o = eval('(' + returned_values + ')');

然后您应该可以使用o作为对象:

alert(o.env); // Gives "development"

更具体地说:

    success: function(returned_values) {
        var o = eval('(' + returned_values + ')');
        $.each(o, function(i, item) {
            console.log(item);
        });
    }