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 ...
随机推荐
- C++中的vector&find_if
<STL應用> vector & find_if 看到有人問有個名為C的struct如下 code: struct C { int v1; int v2; }; 應用在vecto ...
- TrinityCore 魔兽世界私服11159 完整配置
为什么要研究TrinityCore ? (1)它是一个完整成熟的可运行调试的网游服务器框架. (2)它是一个跨平台的标准C++编写的项目,在Windows.Linux.MacOSX上都可编译运行. ( ...
- EEPLAT学习
eeplat:Open Source Metadata PaaS 開始学习的时候仅仅是下了整个项目而且跑通,顺手在这个平台自己主动化的建立 了个管理系统,接下来開始深入研究这个开源平台 所谓元数据(m ...
- CentOS 安装 Jenkins
原文:https://www.sunjianhua.cn/archives/centos-jenkins.html 1.更换源 mv /etc/yum.repos.d/CentOS-Base.repo ...
- HelloWorld 之JasperReports初步
在企业应用系统中,经常要输出各种格式的数据报表. 著名的开源项目<JasperReports可以很好的解决这个问题. 使用JasperReports可以在预先设定好格式的报表基础上进行数据的填充 ...
- JSTL标签用法:<c:choose><c:forEach><c:if><c:when><c:set>
JSP 标准标记库( Standard Tag Library , JSTL) 是一组以标准化格式实现许多通用的 Web 站点功能的定制标记. JSP 技术的优势之一在于其定制标记库工具.除了核心 J ...
- WebLogic清理缓存
如果发布到weblogic的工程,登录发现还是原来的代码错误,可尝试清理weblogic缓存: 1.在weblogic控制台中停止应用,删除部署的工程 2.登录weblogic服务器,删除以下目录中的 ...
- 工具:使用过的 API 文档生成工具
背景 2012 年之前几乎没有为代码增加注释,当然,代码的命名也不见得合理(好的代码胜过面面俱到的注释),后来接触过一些开源框架,优秀的框架都有一个特点:文档和示例非常多,在后来的日子里,几乎会强制自 ...
- js如何判断用户是在pc端和还是移动端访问
js如何判断用户是在pc端和还是移动端访问 来源:A5技术交流 作者:wofa 时间:2014-04-25收藏本页 最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的 ...
- 不越狱安装破解软件,iResign重签名方法
http://www.baidu.com/s?wd=iresign%E8%BD%AF%E4%BB%B6&rsv_spt=1&issp=1&rsv_bp=0&ie=utf ...