JSP使用JSON传递数据,注意避免中文乱码

JSP传递数据时不方便使用Java中的对象类型,一般使用JSON来传递对象。

在使用JSON时,前端js如下,注意指定dataType:

var htmlobj=
$.ajax({
url:"chat.do",type:"POST",
data:{sayingContent:$("#textarea").val()},
dataType:"json",
success: function(data){$("#said").append(data.content);}
});

后台要引入如下jar包。

然后使用如下方式保存JSON:

Map map = new HashMap();
map.put("content", request.getParameter("sayingContent"));
JSONObject json = JSONObject.fromObject(map);

后台访问时,代码如下:

json.getString("content")

返回数据时,要注意设置数据格式,以保证JSON的数据不会成为乱码:

response.setContentType("text/html; charset=utf-8");
response.getWriter().print(json);

最后,区分一下response.getWriter()的write()和print()方法的区别:

(1 )write():仅支持输出字符类型数据,字符、字符数组、字符串等;
(2) print():可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过write(int c)方法被输出。

一个完整样例如下:

protected void doPost(HttpServletRequest request,HttpServletResponse response){
        Map map = new HashMap();
        map.put("content", request.getParameter("sayingContent"));
        JSONObject json = JSONObject.fromObject(map);
        try {
            response.setContentType("text/html; charset=utf-8");
            response.getWriter().print(json);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

后台JSON的扩展阅读:

JSON存取:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html

JSON乱码:http://www.iteye.com/problems/87358

时间: 2025-01-17 02:49:24

JSP使用JSON传递数据,注意避免中文乱码的相关文章

Android 使用JSON格式与服务器交互 中文乱码问题解决

当前是在开发Android 程序时,客户端与服务器端采用JSON传送数据,发现中文乱码问题.不过这个问题的解决办法应该对所有java语言开发的项目都使用. 解决方法是: 1.客户端发送数据之间加上: URLEncoder.encode("要传送的数据", "utf-8"); 对要发送的数据进行字符集设置. 2.服务器端接收数据时加上: URLDecoder.decode("接收的数据", "utf-8"); 对接收的数据进行字

SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码

场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web.xml 中进行编码过滤了,但还是乱码,让人很头疼. 解决办法: 第一种:这种方法,估计很多人都知道,那就在 controller 中的每个方法的  @RequestMappering 注解中进行编码设置,如下所示: @RequestMapping(value = "/queryUserById&qu

jsp get方式请求参数中包含中文乱码问题解决

1. 自己接收到参数之后在后台进行转码处理 2: 修改tomcat的配置文件  server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/> 即可 jsp get方式请求参数中包含中文乱码问题解决,布布扣,bubuk

MySQL对JSON类型UTF-8编码导致中文乱码探讨

前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中文出现乱码还有可深挖之处,接下来我们来分析一下,若有错误之处,还请批评指出. 字符编码 评论中指出任何不在基本多文本平面的Unicode字符,都无法使用MySQL的utf8字符集存储,包括Emoji 表情(Emoji 是一种特殊的Unicode 编码,常见于IOS和Android 手机上)和很多不常

转-Eclipse,tomcat及jsp页面编码的设定解决的中文乱码问题

一.Eclipse下编码的设定(在myeclipse下设定方法类似) 1.window -> Preferences -> general -> Workspace -> Text file encoding(这里是设置工作去的编码) 选择Other,将编码改变为UTF-8,这样以后新建立工程其属性对话框中的Text file encoding即为UTF-8. 2.window -> Preferences -> general -> Content Types(

向hive上传数据时,中文乱码

sudo -u hive hive -e "use dataplat;load data local inpath '/home/dlht/data/test/2_times.csv' overwrite into table 2_times " 这时中文乱码 解决办法是,将数据转成utf-8..

解决前端传数据产生的中文乱码问题

当出现前端传来的数据出现中文乱码的问题时,就修改Servers中的server.xml中的<Connector>标签,在 <Connector>标签中添加 URIEncoding="utf-8"就可以解决中文乱码的问题 加了URIEncoding="utf-8",从前台传过来的值就不会出现乱码问题. 原文地址:https://www.cnblogs.com/wjx2018/p/9390651.html

后台前台json传递数据的方式两种方式 $.get, $.getJSON

第一种getJSON方式: 前台调用: <td><input type="text" class="t" id="edutitle" value="${e.edutitle }" onChange="showElement(this,'${e.id }')"> </td> function showElement(element,id){ $.getJSON("

Json传递数据两种方式

@PostMapping(value = "/list") @ResponseBody public void invoiceDetail2(String ids) { JSONObject jsonobject = JSONObject.parseObject(ids); JSONArray jsonArray = JSONArray.parseArray(jsonobject.get("list1").toString()); List<String>