Java Web项目中Spring框架处理JSON格式数据的方法
json是一种常见的传递格式,是一种键值对应的格式。并且数据大小会比较小,方便传递。所以在开发中经常会用到json。 首先看一下json的格式: {key1:value1,key2:value2} 每一个建对应一个值,每个键值对之间用逗号连接。并且最后一个键值对之后没有逗号,整体需要有大括号括起来。 一般正常的servlet返回json时,会像下面这样: response.setContentType("text/JSON;charset=utf-8"); response.getWriter().print(gson.toJson(page)); response.getWriter().flush(); response.getWriter().close(); return null; 这样相对来说比较麻烦,也不好封装。新版spring返回json时,可以通过@ResponseBody直接返回,这点做得很不错,大概代码如下: @Controller @RequestMapping("/json") public class JsonController { @RequestMapping(value="{provinceId}",method = RequestMethod.GET) @ResponseBody public String pagination(@PathVariable String provinceId){ return getJsonData(provinceId); } } 访问方式如下:http://localhost:8080/spring3/action/json/1,有一点需要注意下,那就是访问spring mvc的controller时中间加了个/action,那是因为DispatcherServlet的映射路径如果直接使用/*的话,会将相应的jsp屏蔽掉,所以一定得加个前缀以区别jsp与controller. 上面的json中如果有中文的话,会出现乱码,所以则修改spring-servlet.xml配置文件,修改下AnnotationMethodHandlerAdapter的messageConverters即可,因为其默认采用的iso8895-1的编码,代码如下: <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="com.mvc.commons.CommonsBindingInitializer" /> </property> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> 经过这些步骤后,对json的处理就相当方便了。 (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – com.netflix.discovery.shared.transport.Transpor
- java定义数组的三种类型总结
- JavaWeb开发之模仿知乎首页完整代码
- java – “Iterable不能被转换到列表” – 不是“List”一种
- java中四种生成和解析XML文档的方法详解(介绍+优缺点比较+
- java – 致命错误:1:1:prolog中不允许内容
- java中利用List的subList方法实现对List分页(简单易学)
- Java的JSON格式转换库GSON的初步使用笔记
- play for scala 实现SessionFilter 过滤未登录用户跳转到登
- java 将byte中的有效长度转换为String的实例代码