-
什么是JSON数据?
- 是一种轻量级的数据交换格式。
- 轻量级,不依赖任何框架,任何语言。
-
数据分类:对象、数组
-
对象
- key必须使用双引号
- value除特殊类型外,都需要使用双引号。(特殊类型:数字、布尔true/false)
{ "k":"v", "k2":"v2",.... } -
数组
[ 元素,元素2,.... ]
-
- 目标:请求JSON数据,响应JSON数据
- 案例:用户条件查询,
- 请求:查询条件 User
- 响应:查询结果 List
- 前提:spring mvc 底层 jackson 处理json数据。
- 步骤:
- 导入 jackson 相关的jar包
- 编写JavaBean:User
- 编写controller,接收请求数据 @RequestBody
- 编写controller,响应数据 @ResponseBody
- postman测试
- 导入 jackson 相关的jar包
-
编写JavaBean:User
package com.czxy.mvcanno.domain; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; public class User { private Integer id; private String username; private String password; public User() { } public User(Integer id, String username, String password) { this.id = id; this.username = username; this.password = password; } // getter和setter } -
编写controller,接收请求数据 @RequestBody
package com.czxy.mvcanno.controller; import com.czxy.mvcanno.domain.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/json") public class JsonController { @RequestMapping("/list") public void list(@RequestBody User user) { System.out.println(user); } } -
编写controller,响应数据 @ResponseBody
package com.czxy.mvcanno.controller; import com.czxy.mvcanno.domain.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("/json") public class JsonController { @RequestMapping("/list") @ResponseBody public Listlist(@RequestBody User user) { System.out.println(user); //响应数据 List list = new ArrayList<>(); list.add(new User(1,"jack","1234")); list.add(new User(2,"rose","6666")); list.add(new User(3,"tom","loverose")); return list; } } -
postman测试
- @JsonIgnore 作用是json序列化时将java bean中的一些属性忽略掉~
public class User {
@JsonIgnore
private List hobby;
- @JsonFormat 格式化日期
public class User {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date birthday;



