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数据的更多相关文章

  1. SpringMVC返回JSON数据时日期格式化问题

    https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring   在运用SpringMVC框架开发时,可 ...

  2. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  3. C#的百度地图开发(二)转换JSON数据为相应的类

    原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON ...

  4. SpringMVC(三)-- 视图和视图解析器、数据格式化标签、数据类型转换、SpringMVC处理JSON数据、文件上传

    1.视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法,SpringMVC 也会在内部将 ...

  5. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  6. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  7. js声明json数据,打印json数据,遍历json数据,转换json数据为数组

    1.js声明json数据: 2.打印json数据: 3.遍历json数据: 4.转换json数据为数组; //声明JSON var json = {}; json.a = 1; //第一种赋值方式(仿 ...

  8. SpringMVC传递JSON数据

    文章目录 一.前后端传递和接收JSON数据 1:是要Ajax默认格式来传递数据(*) 2:使用application/json格式来传递数据 二.spring-web.xml中需要如下配置 一.前后端 ...

  9. SpringMVC的JSON数据交互(七)-@Response,@RestController,@RequestBody用法

    1.@RequestBody   (自动将请求的数据封装为对象) 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConve ...

随机推荐

  1. Setting an Event to Null

    I have a code like this: public class SomeClass { int _processProgress; public int ProcessProgress { ...

  2. java之 ------ 文件拷贝

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  3. C#编程(二十六)----------泛型

    泛型 有了泛型,就可以创建独立于被包含类型的类和方法了.我们不必给不同的类型编写功能相同的许多方法或类,只创建一个方法或类即可. 另一个减少代码的选项是使用object类,但object类不是类型安全 ...

  4. python测试开发django-40.模型(model)中choices使用

    前言 之前一直在想页面上如果一个字段只有固定的几个选项,类似select下拉框这种,如果在表里面设置一个外键的话,是不是有点傻了,这样为了几个选项弄一张表不值得. 后来看到Django模型中的字段有个 ...

  5. 丑闻第一季 /全集Scandal迅雷下载

    丑闻 第一季 Scandal Season 1 (2011)本季看点:“格蕾之母”珊达·瑞密斯(Shonda Rhimes)最新创作的政治公关题材剧集<丑闻>因为播出在即加大了宣传攻势,最 ...

  6. Xcode添加build configuration

    图片转载自:Adding a build configuration in Xcode

  7. Shape 属性解释

    本文来自:http://blog.csdn.net/brokge/article/details/9713041 简介: 作用:XML中定义的几何形状 位置:res/drawable/文件的名称.xm ...

  8. 关于Spring-Data-Jpa的一些理解

    spring data jpa介绍 首先了解JPA是什么? JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管 ...

  9. 14 道 JavaScript 题?

    http://perfectionkills.com/javascript-quiz/ https://www.zhihu.com/question/34079683 著作权归作者所有.商业转载请联系 ...

  10. django的日志发往http server

    配置示例: # https://docs.djangoproject.com/zh-hans/2.1/topics/logging/ LOGGING = { , 'disable_existing_l ...