jQuery循环.each()使用JSON流对象

时间:2014-09-26 12:53:00

标签: java javascript jquery json

JS FILE

var IMController = {
    listIM: function () {
        var params = getUrlVars($("#getIM").attr("href"));
        $.ajax({
            url: "listIM",
            type: "POST",
            dataType: "json",
            data: $.extend(params, {
                _tzcm: new Date().getTime()
            }),
            success: function (data) {



            } // success
        });
        return false;
    }
};

$(document).ready(function () {
    $("#getIM").click(function () {

        IMController.listIM();

        return false;
    });
});

此代码来自我的JAVA CLASS

for (int i = 0; i < ims.size(); i++) {
    JSONObject imJsonObject = new JSONObject();
    imJsonObject.put("imID", ims.get(i).getImID());
    imJsonObject.put("text", ims.get(i).getText());
    imJsonObject.put("dateTime", ims.get(i).getDateTime());
    imJsonObject.put("toAccountID", ims.get(i).getToAccountID());
    imJsonObject.put("toUserFullName", (ims.get(0).getToUser().getFirstName() != null ? ims.get(0).getToUser().getFirstName() : "") + " " + (ims.get(0).getToUser().getLastName() != null ? ims.get(0).getToUser().getLastName() : ""));
    imJsonObject.put("fromUserFullName", (user.getFirstName() != null ? user.getFirstName() : "") + " " + (user.getLastName() != null ? user.getLastName() : ""));
    imJsonObject.put("fromAccountID", ims.get(i).getFromAccountID());
    jsonArray.put(imJsonObject);
}

我已成功从我的Action中获取我的JSON对象。我曾尝试多次使用“each”函数打印返回的数据,但我不能。我不知道为什么。


最后我想出了错误的位置。它在我的getUrlVars函数中。我使用此函数从href链接获取属性并在“data:attribute”中使用它。这是该功能的代码

function getUrlVars(url)
{
    var vars = {};
    var hash;
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];

    }
    return vars;
} 

TypeError:vars.push不是函数vars.push(hash [0]);

2 个答案:

答案 0 :(得分:0)

使用$ .each()时会出现什么问题?

var IMController = {
    listIM: function () {
        var params = getUrlVars($("#getIM").attr("href"));
        $.ajax({
            url: "listIM",
            type: "POST",
            dataType: "json",
            data: $.extend(params, {
                _tzcm: new Date().getTime()
            }),
            success: function (data) {
                $.each(data, function(i, obj) {
                   doWhateverWithObject(obj);
                })


            } // success
        });
        return false;
    }
};

答案 1 :(得分:0)

数据似乎是jsonObjects的jsonArray。试试吧,你可以在每个循环中获得像“text”这样的对象属性。

$.each(data, function(index, jsonObject){
   console.log(jsonObject.text);
});