2014-09-26 46 views
0

JS文件jQuery的循环。每()使用JSON Stream对象

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对象。我曾多次尝试使用“每个”功能打印返回的数据,但我无法打印。我不知道为什么。


以及最后我想通了错误所在。它在我的getUrlVars函数中。我使用这个函数从href链接获取属性并在“data:attribute”中使用它。这里s此功能

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; 
} 

类型错误的代码:vars.push是不是一个函数vars.push(散列[0]);

+0

哪里是小提琴?或给出你得到的JSON输出 – 2014-09-26 12:56:40

+0

@AbdullaChozhimadathil - 没有规定说所有东西都要发布到jsFiddle。 OP提供了他们的代码,因为他们应该这样做。 – 2014-09-26 12:59:56

+0

@sphanley不一定要有一个jsFiddle,但是需要比这更多的信息。 @OP你试图使用'each()'函数的地方在哪里?我在代码中的任何地方都看不到'each'。 – JLRishe 2014-09-26 13:07:57

回答

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; 
    } 
}; 
+0

以及我不知道如何以正确的方式使用我的每个功能。每次我尝试它,这是我得到[{“text”:“测试即时通讯”,“fromAccountID”:1,“dateTime”:2014-09-25 17:14:06.0,“toAccountID”:2,“imID “:1,”fromUserFullName“:”admin admin“,”toUserFullName“:”fname lname“},{”text“:”test test“,”fromAccountID“:2,”dateTime“:2014-09-25 17: 14:06.0,“toAccountID”:1,“imID”:2,“fromUserFullName”:“admin admin”,“toUserFullName”:“fname lname”}] – 2014-09-26 13:12:02

0

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

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