java传输json数据汉字_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包。

0b1046736d27a6ca13d5902f2af2f098.png

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

Map map = newHashMap();

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 voiddoPost(HttpServletRequest request,HttpServletResponse response){Map map= newHashMap();

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/87358991f13fc66a292706476b0ce671b3fb0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值