实例详解SpringBoot默认的JSON解析⽅案
⽬录
⼀、什么是JSON
⼆、如何在SpringBoot中使⽤JSON
三、举例
mvc实例四、拓展
总结
⼀、什么是JSON
JSON(JavaScript Object Notation)是⼀种基于JavaScript语法⼦集的开放标准数据交换格式。JSON是基于⽂本的,轻量级的,通常被认为易于读/写。
好了,废话不多说,下⾯开始介绍如何在SpringBoot中使⽤JSON。
⼆、如何在SpringBoot中使⽤JSON
在学习json之前,我们必须先了解⼀下HttpMessageConverter,其实看名字就知道,这是⼀个消息转换⼯具。
下⾯我来介绍⼀下它的两个功能:
1、将服务端返回的对象序列化成 JSON 字符串。
2、将前端传来的 JSON 字符串反序列化成 Java 对象。
所有的 JSON ⽣成都离不开相关的 HttpMessageConverter。
SpringMVC ⾃动配置了 Jackson 和 Gson 的 HttpMessageConverter,Spring Boot 中⼜对此做了⾃动化配置,下⾯是两者对应源码的路径:
org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration
org.springframework.boot.autoconfigure.http.GsonHttpMessageConvertersConfiguration
所以,如果⽤户使⽤ jackson 和 gson 的话,没有其他额外配置,则只需要添加依赖即可。
三、举例
【第⼀步】⽼规矩,先创建⼀个SpringBoot项⽬。通过右边的Maven可以看到,其实SpringBoot已经将json集成进来
了,Maven结构如下图:
【第⼆步】创建⼀个bean和⼀个controller类,具体项⽬结构和代码如下:【项⽬结构】
【User.java】
package com.mango.json.bean;
import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date;
public class User {
private Integer id;
private String username;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
【UserController.java】
package com.ller;
import com.mango.json.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
public class UserController {
@GetMapping("/user")
public List<User> getUser() {
List<User> userList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setUsername("mango>>>" + i);
user.setAddress("www.mango>>>" + i);
user.setBirthday(new Date());
userList.add(user);
}
return userList;
}
}
【运⾏结果】
注:⼤家可能和我显⽰的效果不⼀样,但是内容肯定是⼀样的,如果需要显⽰成我这样格式,需要给浏
览器装⼀款插件JSONView,这款插件就专门为json格式设计的,因为很复杂的json格式,是不容易阅读的。
四、拓展
上⾯就是SpringBoot中json的简单⽤法,下⾯我会再针对json进⾏⼀点内容的拓展。
1、如果碰到bean中有⽇期类型的属性,json该怎么处理⽇期格式?
【第⼀种办法】我们可以在该属性上添加@JsonFormat(pattern = “yyyy-MM-dd”)注解,代码如下:
package com.mango.json.bean;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论