springmvc转换JSON数据
1、引入jackson包
要想在springmvc框架下支持json的转换,需要引入jackson的包,在pom.xml中添加如下代码:
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>2.9.7</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.9.7</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>2.9.7</version>
- </dependency>
没有用maven的可以去官网下载jar包
修改springMVC-servlet.xml文件,修改mvc:annotation-driven标签对应的内容,其实引用了jackson的包,默认就加了对json的转换了,我试了一下,不添加也可以用。
- <mvc:annotation-driven>
- <mvc:message-converters>
- <ref bean="stringHttpMessageConverter"/>
- <ref bean="mappingJackson2HttpMessageConverter"/>
- </mvc:message-converters>
- </mvc:annotation-driven>
- <bean id="stringHttpMessageConverter"
- class="org.springframework.http.converter.StringHttpMessageConverter"/>
- <bean id="mappingJackson2HttpMessageConverter"
- class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
- <property name="supportedMediaTypes">
- <list>
- <value>text/html;charset=UTF-8</value>
- </list>
- </property>
- </bean>
2、pojo类的转换
添加一个pojo类 User.java
- public class User {
- private String username;
- private String fav;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getFav() {
- return fav;
- }
- public void setFav(String fav) {
- this.fav = fav;
- }
- }
Controller类中将User对象转换成json字符串输出:
- @RequestMapping("/test1")
- @ResponseBody
- public User test1() {
- User user = new User();
- user.setUsername("张三");
- user.setFav("乒乓球");
- return user;
- }
也可以这么写:
- @RequestMapping("/test1")
- public @ResponseBody User test1(HttpServletRequest request) {
- User user = new User();
- user.setUsername("张三");
- user.setFav("乒乓球");
- return user;
- }
输出的结果是:
- {"username":"张三","fav":"乒乓球"}
3、Map的转换
如果没有pojo类,只是一些键值对的输出,可以使用Map
- @RequestMapping("/test2")
- @ResponseBody
- public Map<String,String> test2() {
- Map<String,String> map = new HashMap<String,String>();
- map.put("username", "张三");
- map.put("fav", "乒乓球");
- return map;
- }
输出的结果跟上面的一样:
- {"username":"张三","fav":"乒乓球"}
4、接收json串做为参数
- @RequestMapping(value="/test3",consumes="application/json",method=RequestMethod.POST)
- public String test3(@RequestBody User user,HttpServletRequest request) {
- request.setAttribute("username", user.getUsername());
- request.setAttribute("fav", user.getFav());
- return "/test3";
- }
这里是使用@RequestBody User user作为接收参数,如果要接收json,接收方式只能是post方式,不然会报错
这里我是返回到了一个jsp页面,这里就不把jsp页面的内容写出来了
这里列一下上一个请求页面的html:
- <script type="text/javascript" src="js/jquery-2.1.1.js"></script>
- <script type="text/javascript">
- $.ajax({
- url: "test3",
- cache: false,
- contentType:"application/json",
- data:JSON.stringify({username:'张三',fav:'乒乓球'}),
- dataType:"json",
- type: "POST",
- success: function(html){
- alert(html);
- }
- });
- </script>
5、另外一种选择Gson
Gson的使用更加简单,也是目前流行的json处理包,可以把jackson替掉,引入gson
pom.xml
- <dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- <version>2.8.5</version>
- </dependency>
springMVC-servlet.xml文件
- <mvc:annotation-driven>
- <mvc:message-converters>
- <ref bean="stringHttpMessageConverter"/>
- <ref bean="mappingGsonHttpMessageConverter" />
- </mvc:message-converters>
- </mvc:annotation-driven>
- <bean id="stringHttpMessageConverter"
- class="org.springframework.http.converter.StringHttpMessageConverter"/>
- <bean id="mappingGsonHttpMessageConverter"
- class="org.springframework.http.converter.json.GsonHttpMessageConverter">
- <property name="supportedMediaTypes">
- <list>
- <value>text/html;charset=UTF-8</value>
- </list>
- </property>
- </bean>
springmvc转换JSON数据的更多相关文章
- SpringMVC返回JSON数据时日期格式化问题
https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring 在运用SpringMVC框架开发时,可 ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- C#的百度地图开发(二)转换JSON数据为相应的类
原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON ...
- SpringMVC(三)-- 视图和视图解析器、数据格式化标签、数据类型转换、SpringMVC处理JSON数据、文件上传
1.视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法,SpringMVC 也会在内部将 ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- js声明json数据,打印json数据,遍历json数据,转换json数据为数组
1.js声明json数据: 2.打印json数据: 3.遍历json数据: 4.转换json数据为数组; //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿 ...
- SpringMVC传递JSON数据
文章目录 一.前后端传递和接收JSON数据 1:是要Ajax默认格式来传递数据(*) 2:使用application/json格式来传递数据 二.spring-web.xml中需要如下配置 一.前后端 ...
- SpringMVC的JSON数据交互(七)-@Response,@RestController,@RequestBody用法
1.@RequestBody (自动将请求的数据封装为对象) 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConve ...
随机推荐
- .NET中常见的内存泄漏和解决办法
在.NET中,虽然CLR的GC垃圾回收器帮我们自动回收托管堆对象,释放内存,最大程度避免了"内存泄漏"(应用程序所占用的内存没有得到及时释放),但.NET应用程序"内存泄 ...
- 使用C#的泛型队列Queue实现生产消费模式
本篇体验使用C#的泛型队列Queue<T>实现生产消费模式. 如果把生产消费想像成自动流水生产线的话,生产就是流水线的物料,消费就是某种设备对物料进行加工的行为,流水线就是队列. 现在,要 ...
- .net项目中使用Quartz
(1)在web.config中进行相关配置 <configSections> <section name="quartz" type="System.C ...
- 【转】iPhone易被窃听应用三分钟即可获取所有信息
2011年8月9日10:19 “你有iPhone吗?这下你麻烦了!”昨天香港<东方日报>封面文章用这样的语气报道说,一种iPhone等智能手机窃听程序,正引爆香港. 该报记者亲自试验,发现 ...
- Java中使用正则表达式获取网页中所有图片的路径
public static List<String> getImageSrc(String htmlCode) { List<String> imageSrcList = ne ...
- Swift - CALayer的contents属性动画
Swift - CALayer的contents属性动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // LiveImageVi ...
- php定时回调接口
http://www.dewen.org/search/q/php%E5%AE%9A%E6%97%B6%E8%B0%83%E7%94%A8%E5%AD%98%E5%82%A8%E8%BF%87%E7% ...
- [转]Linux awk 命令 说明
From : http://blog.csdn.net/tianlesoftware/article/details/6278273 一. AWK 说明 awk是一种编程语言,用于在linux/un ...
- 利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)
本文将介绍如何利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序,分为上下两篇.上篇主要介绍实现,下篇主要介绍界面. 打开Visual ...
- 数据库分库分表中间件:Mycat;分布式数据库;mysql的分布式事务
官网:http://mycat.io/,里面有电子书籍可以下载:http://www.mycat.io/document/mycat-definitive-guide.pdf 旧版本下载地址:http ...