2 mr li13 Mr_li13 于 2016.04.12 17:18 提问

ajax解析后台数据,解析不出来?

前台ajax:

 <script type="text/javascript" src="${pageContext.request.contextPath }/script/jquery/jquery-1.11.3.min.js"></script>
    <script type="text/javascript">
        $(function(){
            alert("sdssd");
        /*离开下拉列表焦点处理*/

            var province1="";
            var city1="";
            var county1="";

            $("#provice_id").change(function(){
            var proviceName = document.getElementById("provice_id").value;
            province1 = proviceName;
                if(proviceName==""){
                    alert("没选中值!无法查询!"+proviceName);
                }else{
                    $.ajax({
                        type:"POST",
                        url:"manage_findAllManager!findAllManager",
                        dataType:"json",
                        data:{province:proviceName},
                        success:function(data){//成功后走的方法
                            alert("sssssss");
                            var data1 = JSON.parse(data);
                            alert(data1);
                            $.each(data1.comments, function(i,item){
                                aler(item.username);
                            });

                            if(data1!=null){

                                alert("成功走方法!");
                                /* $.each(data.managers,function(i,val){
                                    alert(val.username);
                                    }); */
                                }else{
                                    alert("没有成功发送数据!");
                                }

                            }
                        });     
                    }
            });
        });

         <body>
    <select id="provice_id">
        <option value="">--省--</option>
        <option value="湖北省">湖北省</option>
    </select>
        </body>

后台方法:

    List<TbManager> managers = managerService.findAllManager(address1);
        System.out.println(managers.size());
        JsonConfig config = new JsonConfig(); //建立配置文件
        config.setIgnoreDefaultExcludes(false);//设置默认忽略
        config.setExcludes(new String[]{"tbManagerRoles"});
        //此处是亮点,只要将所需忽略字段加到数组中即可,在上述案例中,
        //所要忽略的是“libs”,那么将其添到数组中即可,在实际测试中,
        //我发现在所返回数组中,存在大量无用属性,
        //如“multipartRequestHandler”,“servletWrapper”,
        //那么也可以将这两个加到忽略数组中.
        try {
            JSONArray array = JSONArray.fromObject(managers, config);//加载配置文件
            System.out.println(array.toString());
            PrintWriter out = ServletActionContext.getResponse().getWriter();
            out.print(array);
            out.flush();
            out.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

后台也不报错,但是就是解析不出来?各位大神帮忙看一下。可以吧

4个回答

u010728914
u010728914   2016.04.12 22:49
已采纳

因为ajax类型已经声明是json了所以success的回掉函数data就已经是json对象了 没必要再重新JSON.parse了 还有$each 下面的alert少了t 改了之后还不行的话可以使用浏览器的debug network看下json数据到底有没有拿到 确定一下到底是浏览器的问题还是后台服务器的问题

Mr_li13
Mr_li13 嗯嗯,讲解很清楚,那个问题已经解决,新问题出来了,就是过来出来的字符串全是问号,页面编码明明是UTF-8啊?
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.04.12 17:22

ajax提交json数据,后台解析问题
Ajax对象传入后台解析
ajax简单解析xml文件(复杂的解析可以通过后台程序实现,如一般处理程序)
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

caozhy
caozhy   Ds   Rxr 2016.04.12 18:10

out.print(array);
这里下断点,看输出的是什么,贴出来

alert(data1);
输出什么,贴出来

Mr_li13
Mr_li13   2016.04.12 23:17

嗯嗯,讲解很清楚,那个问题已经解决,新问题出来了,就是过来出来的字符串全是问号,页面编码明明是UTF-8啊?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!