easyui datagrid 接收到后台的json数据却不显示 console.log()可以输出value

easyui datagrid 接收到后台的json数据却不显示 console.log()可以输出value

后台代码

    response.setContentType("application/json");
    PrintWriter out = response.getWriter();
    Map<String, Object> map = new HashMap<String, Object>();
    Map<String, Object> map2 = new HashMap<String, Object>();
    String name ="limengzhou";
    map.put("name", name);
    map2.put("name", "lalalalal");
    //转换成json数据
    JSONArray jsonData = new JSONArray();
    jsonData.fluentAdd(map);
    jsonData.fluentAdd(map2);
    String json = jsonData.toJSONString();
    System.out.println(jsonData);
    out.println(jsonData);
    out.flush();
    out.close(); 

前端代码

$("#datagrid").datagrid({
        url:'Login1',
        title:'信息a',
        iconCls:'icon-save', 
        loadFilter: function(data){
            console.log("aaaaa")
            console.log(data[0].name)
            console.log(data[1].name)

            if (data.name){
                return data;
            } else {
                return data;
            }
        },
        columns:[[  {field:'name',title:'姓名',width:100,}]],

        数据可以正常console.log
        下图

        ![图片说明](https://img-ask.csdn.net/upload/202003/31/1585625218_481000.png)
        ![图片说明](https://img-ask.csdn.net/upload/202003/31/1585625273_654898.png)

参考GPT和自己的思路:

根据您提供的代码和问题描述,可能是前端代码中 loadFilter 函数的问题。在该函数中,您的判断条件 if (data.name) 是错误的,因为 data 是一个数组,而不是一个对象,因此无法直接访问 data.name。正确的判断条件应该是 if (data && data.length > 0)。建议您修改前端代码,如下所示:

$("#datagrid").datagrid({
        url:'Login1',
        title:'信息a',
        iconCls:'icon-save', 
        loadFilter: function(data){
            console.log("aaaaa")
            console.log(data[0].name)
            console.log(data[1].name)

            if (data && data.length > 0){
                return data;
            } else {
                return [];
            }
        },
        columns:[[  {field:'name',title:'姓名',width:100,}]],
    });

这样修改之后,应该能够正确显示数据了。如果您还有其他问题,请随时提问,我会尽力解答。