一、使用fastjson
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
依赖
<!--fast 用于json解析-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.11.graal</version>
</dependency>
介绍
User类(自定义的)
@AllArgsConstructor
@NoArgsConstructor
@Data
public class User {
private String name;
private String sex;
private int age;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date birthday;
}
对象转json
//对象转json
String userJson = JSON.toJSONString(user);
System.out.println("userJson = " + userJson);
json转对象(Map也属于对象)
//json转Map
Map userMap = JSON.parseObject(userJson, Map.class);
System.out.println("userMap = " + userMap);
//json转对象
User user1 = JSON.parseObject(mapJson, User.class);
System.out.println("user1 = " + user1);
二、 使用Jackson
Jackson被称为“ Java JSON库”或“ Java的最佳JSON解析器”。或简称为“ JSON for Java”(springboot自带json解析库)
1、依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.12.1</version>
</dependency>
2、介绍
对象转json、json转对象
ObjectMapper objectMapper = new ObjectMapper();
try {
//对象转json
userJson = objectMapper.writeValueAsString(user);//user为对象
System.out.println("userJson = " + userJson);
//json转对象
User jsonUser = objectMapper.readValue(userJson, User.class);
System.out.println("jsonUser = " + jsonUser);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
三、使用Gson
Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。它也可以用于将JSON字符串转换为等效的Java对象。Gson可以处理任意Java对象,包括您没有源代码的预先存在的对象。
1、依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
2、介绍
// gson无法正常将时间戳转化成date
// 使用JSON内存树注册Date类型
Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, new DateTypeAdapter()) // 默认适配器
.create();
User user = new User();
user.setSex("女");
user.setName("xx");
user.setBirthday(new Date());
user.setAge(11);
System.out.println("user = " + user);
//对象转Json
String userJson = gson.toJson(user);
System.out.println("userJson = " + userJson);
//json转对象
User jsonUser = gson.fromJson(userJson, User.class);
System.out.println("jsonUser = " + jsonUser);