admin管理员组文章数量:1794759
Spring MVC处理JSON数据(3)
Spring MVC处理JSON数据(3)-自定义消转换器
Spring MVC默认使用Jackson处理JSON数据。在实际开发中,若需要使用其他的工具处理JSON,那么就可以使用自定义的Http消转换器(HttpMessageConverter)。
使用fastjson处理JSON示例:
1.User实体类 public class User implements Serializable { private static final long serialVersionUID = -1684248767747396092L; private String username;//用户名 private String pwd;//密码 //get、set略 } 2.请求的js $("#_btn_send3").click(function(){ $.ajax({ url : "${pageContext.request.contextPath}/json/receiveJson3.do", type : "post", data: {username:"小明",pwd:"123456"}, dataType : "json", success : function(data){ console.log(data); } }); }); 3.Controller该方法和前两篇文章一致,仍是通过@ResponseBody标识将Java类转换为特定格式的数据写入到输出流中。区别的地方是在Spring要调用我们自定义的消转换器。
@RequestMapping("/receiveJson3") public @ResponseBody Map<String, Object> receiveJson3(User user) throws Exception { Map<String, Object> dataMap = new HashMap<String,Object>(); dataMap.put("status", "success"); if(user != null){ System.out.println("用户名:" + user.getUsername() + " 密码:" + user.getPwd()); }else { System.out.println("未获取到用户"); } dataMap.put("user", user); return dataMap; } 4.配置springmvc.xml重点在springmvc配置这里,此时不注册默认的消转换器,并在此定义自己的消转换器以及fastjson转换器。在使用fastjson时,需要引入fastjson.jar,具体配置如下:
<!-- 设置配置方案 --> <mvc:annotation-driven> <!-- 不使用默认的消转换器 --> <mvc:message-converters register-defaults="false"> <!-- 配置Spring的转换器 --> <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/> <!-- 配置fastjson中实现HttpMessageConverter接口的转换器 --> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <!-- 加入支持的媒体类型,返回contentType --> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> 5.测试结果(1).正常结果
(2).为测试是否是配置的fastjson起作用,注释掉<bean id="fastJsonHttpMessageConverter" ...>该bean后测试结果
6.注(1).通过<mvc:message-converters>关闭默认的消转换器,之后自定义所需使用的JSON转换器。在引入相关jar后,使用实现了HttpMessageConverter接口的类创建bean,同时配置响应的MIME;
(2).406状态码:HTTP协议状态码的一种,Not Acceptable,客户端错误,一般指客户端浏览器不接受请求的MIME类型
(3).fastjson相关jar下载地址,GitHub:点击打开链接,CSDN:点击打开链接
版权声明:本文标题:Spring MVC处理JSON数据(3) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686616986a86690.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论