目录
一、JSON数据处理
1.JSON、JSON-lib、jackson区别
1.JSON是一种数据格式,使用{"key": "value"}/{"key": value},用于数据传输
var json = {"name":"SpringMVC","age":6,"funny":true}
2.JSON-lib是一个Java类库(官网:http://json-lib.sourceforge.net) 可以实现如下功能
- 转换 javabeans, maps, collections, java arrays 和 XML 成为 json 格式数据
- 转换 json 格式数据成为 javabeans 对象
- JSON-lib需要的jar包
- commons-beanutils-1.8.3.jar
- commons-collections-3.2.1.jar
- commons-lang-2.6.jar
- commons-logging-1.1.1.jar
- ezmorph-1.0.6.jar
- json-lib-2.4-jdk15.jar
- Maven中配置JSON-lib的时候需要注意,需要指定JDK版本,否则将会出错
<!-- https://mvnrepository.com/artifact/org.kohsuke.stapler/json-lib -->
<dependency>
<groupId>org.kohsuke.stapler</groupId>
<artifactId>json-lib</artifactId>
<version>2.1</version>
<classifier>jdk15</classifier>
</dependency>
2.JSON-lib基本使用
1.将对象转为JSON数据格式
3.jackson基本使用
3.1 jackson基本简介
1.Jackson是一个Java用来处理JSON格式数据的类库,性能非常好
- Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象
- Jackson社区相对比较活跃,更新速度也比较快,有更好的发展空间
- 相比json-lib框架,Jackson所依赖的jar包较少,只需要三个核心包就能使用,简单易用且性能相对高
- jackson-annotations-2.1.1.jar
- jackson-core-2.1.1.jar
- jackson-databind-2.1.1.jar
2.jackson在SpringMVC中可以自动将对象转为json格式字符串
3.2 jackson基本使用
1.导入jar包如下
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.codecoord</groupId>
<artifactId>SpringMVC</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- 加载SpringMVC依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.9.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.1</version>
</dependency>
</dependencies>
</project>
2.在SpringMVC配置文件中开启组件扫描和注解扫描
3.在控制器中的的不同位置指定注解代表不同含义
- @RestController将所有方法返回作为JSON数据,不经过视图处理器
- @ResponseBody指定单个方法返回值作为json,不经过视图处理器
- 会自动将Person对象转为json字符串,示例
4.@RestController <=> @Controller+每个方法@ResponseBody
5.@ResponseBody注解位置不同则意义不同
- 方法上或返回值前:将对象转为JSON字符串返回
- 在方法参数的对象类型之前:将对象转为JSON字符串传入