zoukankan      html  css  js  c++  java
  • ajax处理返回的json数据

    1、返回json字符串: 

    /** 将一个字符串输出到浏览器 */
        protected void writeJson(String json) {
            PrintWriter pw = null;
            try {
                servletResponse.setContentType("text/plain;charset=UTF-8");
                pw = servletResponse.getWriter();
                pw.write(json);
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (pw != null) {
                    pw.close();
                }
            }
        }

    2、通过eval将返回的json字符串转换成json对象:

    $.ajax({
            data:{
                "shipmmsi":shipmmsi,
                "shipname":shipname
            },
            url : "shipbk/findShipMMSIAndName.do",
            async : true,
            type : "POST",
            success : function(data) {
                var ships = eval('(' + data + ')');
                $("#bindShipmmsiDiv table tbody").html("");
                if(ships!=null){
                    if(ships.length){
                        $("#bindShipmmsiDiv").show();
                        var trs="";
                        for(var i=0;i<ships.length;i++){
                            trs+="<tr><td>"+ships[i].mmsi+"</td><td>"+ships[i].vesselName+"</td></tr>";
                        }
                        $("#bindShipmmsiDiv table tbody").append(trs);
                        //给tr注册点击事件
                        $("#bindShipmmsiDiv table tbody tr").click(function(){
                            $(this).addClass('select_tr').siblings().removeClass('select_tr');
                        });
                        $("#bindShipmmsiDiv table tbody tr").dblclick(function(){
                            fillShipMMSIAndName(this);
                            $("#bindShipmmsiDiv").hide();
                        });
                    }
                }
            }
        });

    3、通过jquery的 $("form").serialize() 可以将form表单的数据序列化后提交到后台,因此通过ajax可以操作form表单并处理返回的数据。

    $.ajax({
      url : 'deliveryWarrant/update.do',
      data : $('#myform').serialize(),
      type : "POST",
      success : function(data) {
        var res = eval('(' + data + ')');
        if (res && res.success == true) {    
          alert(res.message);
        location.href="/godownWarrant/findToDeliveryWarrant.do?godownWarrant.code="+$("#myform input[name=godownWarrant\\.code]").val();
        } else {
          alert(res.message);
        }
      }
    });

    4、防止乱码的处理方法:

      jsp页面:charset:utf-8
      servlet:utf-8
      filter:utf-8
      在PrintWriter out = response.getWriter()之前加一句
      response.setCharacterEncoding("UTF-8")就可以解决乱码的问题。
      但是得记住一定要放在声明PrintWwrite之前,我以前老放在后面,一直找不到原因,今天终于找到原因了。

       总之,前台界面,java文件,数据库和数据库的连接都有采用统一编码,才不会出现乱码等情况。

  • 相关阅读:
    java数组去重
    XMLBeans简记
    【转】JAVA中的多线程问题(高级面试中经常遇到)
    【转】马士兵_JAVA自学之路
    【摘】加载页面:您的网站如何导致访问者感染恶意软件
    iBatisNet学习笔记三:QuickStart
    知识点滴:持久层,DAO,API,DAL,BLL,DLL,csproj,sln
    新知识了解笔记:关于Ibatis,ORM等
    iBatisNet学习笔记一:配置
    Google Map API
  • 原文地址:https://www.cnblogs.com/lbangel/p/3045886.html
Copyright © 2011-2022 走看看