日期:2014-05-16  浏览次数:20345 次

服务器端字符串转换成json格式数据返回
一直使用struts2,有时候做ajax验证客户端的时候,并不想使用struts的json插件,因为只返回一个验证成功标志,不想那么繁琐,于是就想直接返回一个从字符串转成的json结果
我开始直接这么写的
String result="{state:'success',message:'用户名可用'}";
当直接用ServletResponse.getWriter().write(result);时 在客户端,使用firebug能解析到json对象,但是我使用jquery.ajax()方法,并且dataType设置为"json"时,无论如何回调方法都不执行,当我把dataType设值去掉时,回调方法执行了,说明客户端并没有成功解析到json
。后来看到网上说是因为服务器端要转成json的字符串中不能带单引号,只好改成
String result={state:\"success\",message:\"用户名可用\"};
因为Response对象放回的MIME类型默认是xml对象,所以在调用getWriter()之前,需要设值contentType;一定要在getWriter之前调用,否则setContentType() 不会起作用,注意json数据的MIME类型是application/json