Java Ajax中的JSONArray循环

Java Ajax中的JSONArray循环,java,jquery,ajax,Java,Jquery,Ajax,我尝试在js文件中循环JSONArray,但失败了。 有人能帮我吗? 这是我的servlet代码: ArrayList<Campionato> campionati = DBManager.getInstance().getCampionatoDao().query(); JSONArray jsonArray = new JSONArray(campionati); resp.getWriter().println(jsonArray); 谢谢大家 下面的代码片

我尝试在js文件中循环JSONArray,但失败了。 有人能帮我吗? 这是我的servlet代码:

ArrayList<Campionato> campionati = DBManager.getInstance().getCampionatoDao().query();

    JSONArray jsonArray = new JSONArray(campionati);
    resp.getWriter().println(jsonArray);

谢谢大家

下面的代码片段使用JQuery在json数组上迭代

    data = $.parseJSON(data); 
    $.each(data, function(i, item) { 
        alert(item);
     }) ;

问题是函数
success
中有什么数据

使用
console.log(data)
alert(JSON.stringify(data))
查看它。

响应中的数据(
success:function(data){
)是一个对象,在其
data
属性中保存元数据和所需数据。因此,您要做的是从响应中获取实际数据,并循环它包含的数组:

success: function(data){
    let d = data.data; // now d holds your response data - array
    for (let x of d) {
        console.log(x);
    }
}

伙计们,我意识到出了什么问题,如何将数据放入jsonarray

正确的方法是

final JSONObject obj = new JSONObject();
    final JSONArray array = new JSONArray();

    try {
        for (final Campionato campionato : campionati) {

            final JSONObject jsonObj = new JSONObject();

            jsonObj.put("idCampionato", campionato.getIdCampionato());
            jsonObj.put("numPartecipanti", campionato.getNumPartecipanti());
            jsonObj.put("partecipantiTotali", campionato.getPartecipantiTotali());
            jsonObj.put("attivo", campionato.getAttivo());

            array.put(jsonObj);

        }

        obj.put("campionati", array);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    resp.setContentType("application/json");
    resp.getWriter().print(obj);
在阿贾克斯

 $.ajax({ 
    type: "GET",
    url: "provaServlet",
    dataType : 'json',
    success: function(data){
        var campionati = data.campionati;
        var div = $('#cAttivi');
        div.empty();

        for (var i = 0, length = campionati.length; i < length; ++i) {
            var campionati = campionati[i];
            var stringToAppend = "<div> "+ campionati.idCampionato +"</div>";
            div.append(stringToAppend);
        }
$.ajax({
键入:“获取”,
url:“provaServlet”,
数据类型:“json”,
成功:功能(数据){
var campionati=data.campionati;
var div=$('#cAttivi');
div.empty();
对于(变量i=0,长度=campionati.length;i
现在一切都好了


谢谢大家的耐心

请澄清问题。你想完成什么?我只需要循环jsonarray。它由Myservlet传递。我正在寻找但我找不到解决方案,你能帮我吗?日期是jsonarray确保你的数据是json格式还是非json格式。如果它已经是json格式,那么跳过json解析。还有选中json.ok的格式,谢谢,但是没有工作:(,我确定我的数据是json formatalert(json.stringify(data)),这样我就看到了内存地址[”bean。Campionato@149fd83e豆子。Campionato@560ca2a0“]相同的答案,不起作用,现在我尝试修改servlet中的某些内容,可能是我在将数组放入JSONArray时出错了
 $.ajax({ 
    type: "GET",
    url: "provaServlet",
    dataType : 'json',
    success: function(data){
        var campionati = data.campionati;
        var div = $('#cAttivi');
        div.empty();

        for (var i = 0, length = campionati.length; i < length; ++i) {
            var campionati = campionati[i];
            var stringToAppend = "<div> "+ campionati.idCampionato +"</div>";
            div.append(stringToAppend);
        }