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啊?
2 年多之前 回复
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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ajax提交json数据,后台解析问题
描述:在用json处理数据的时候 遇到问题 后台打印如下信息
ajax json jquery解析后台返回的数组
$(document).ready(function(){ $("button").click(function(){ $.ajax({ url:"testJson", type:"post", data:{"username":"zhangsan","age":"18"}, dataType:"json", error:function(){alert("出错啦")}, succ
Ajax发送XML数据及解析
Ajax-XML技术: 将前台数据封装成XML数据,可以实现发送更复杂的数据。 流程:前台将数据拿到以后,封装成XML数据,向后台发送,后台接收到数据以后,用dom4j技术解析。     后台也可向前台发送XML数据,也是利用dom树来解析 前台: ajaxXml.jsp <%@ page language="java" contentType="text/html; char
EXTJS AJAX 解析 XML 数据
EXTJS  AJAX 从后台取 XML  数据 在页面上展示  页面JS function getAllAreaInfos() { var areaName = ""; Ext.Ajax.request({ method: 'POST', url: 'allAreaInfos', params: {"areaName":are
AJAX - 后台解析前台传的JSON数组
前面讲了前台传JSON到后台,只是单独一个json,这里说明一下前台传JSON数组到后台如何接收并转换【方法一】将得到的json数组字符串转换为 list: String jsonStr = getRequest().getParameter("mydata"); System.out.println(jsonStr); //json-jackson
ajax解析json对象数据到前端
Ajax中解析Json的两种方法详解 eval();  //此方法不推荐 JSON.parse();  //推荐方法 一、两种方法的区别 我们先初始化一个json格式的对象:   var jsonDate = '{ "name":"周星驰","age":23 }'   var jsonObj = eval( '(' + jsonDate + ')' );
ajax解析返回数据
最初,项目中使用$.ajax发送ajax请求,发现其中dataType类型有的是json,有的是text,因此有必要把这些都搞清楚。 datatype为json类型: 若返回的值是entity转为json,转换结果方法: var obj=eval(result) var success =obj.success; datatype为text类型: 若返回值是entity转的json,转换
【Ajax】传递Json对象到MVC后台解析
时在做批量删除或批量修改的时候经常需要传递一个数组集合到台。1、怎么在前端用ajax提交一个json数组到后台,后台怎么获得
ajax上传map类型数据,后台解析
1.ajax上传map类型数据 var rebate=""; var typeKey="";         var rebateMap = {};         var str =""; $('.rebateCss').each(function () {            rebate = $(this).val();             typeKey=$(thi
ajax异步上传文件,ajax提交表单中的文件到后台解析
原生ajax是不能提交文件的,因为ajax与后台的通信是通过字符串的. 那么如何实现呢? 本文需要使用jquery.form.js同时,还需要引用jquery.js 以上传excel到后台并解析为例: 首先看一下表单的书写. 例如: 注意: form中必须要有: