FastJson 是一个 Java 序列化/反序列化库,能够将 Java 对象转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转换成 Java 对象。
1. 使用方法
下面简单介绍一下 FastJson 的使用方法。
1.1 转换 Java 对象为 JSON 格式字符串
可以使用 JSONObject 、 JSONArray 或 JSON.toJSONString() 方法将 Java 对象转换成 JSON 格式字符串:
```java
// 1. 使用 JSONObject 转换
JSONObject json1 = new JSONObject();
json1.put("name", "Tom");
json1.put("age", 18);
// 2. 使用 JSONArray 转换
JSONArray json2 = new JSONArray();
json2.add("apple");
json2.add("banana");
// 3. 使用 JSON.toJSONString() 方法转换
User user = new User("Tom", 18);
String json3 = JSON.toJSONString(user);
```
1.2 转换 JSON 格式字符串为 Java 对象
使用 JSON.parseObject() 方法将 JSON 格式字符串转换成 Java 对象:
```java
// JSON 格式字符串
String json = "{\"name\":\"Tom\",\"age\":18}";
// 将 JSON 格式字符串转换成 Java 对象
User user = JSON.parseObject(json, User.class);
```
1.3 序列化和反序列化混合对象
FastJson 还支持对混合对象的序列化和反序列化操作:
```java
// 学生类
public class Student {
private String name;
private int age;
private List
// getter 和 setter
}
// 课程类
public class Course {
private String name;
private int score;
// getter 和 setter
}
// 混合对象
Map
map.put("name", "Tom");
map.put("age", 18);
List
courses.add(new Course("Math", 90));
courses.add(new Course("English", 80));
map.put("courses", courses);
// 对混合对象进行序列化
String json = JSON.toJSONString(map);
// 将 JSON 格式字符串转换成混合对象
Map
List
Student student = new Student();
student.setName((String) map2.get("name"));
student.setAge((int) map2.get("age"));
student.setCourses(courses2);
```
2. 案例说明
FastJson 可以用于很多场景中,例如前后端数据交互、日志输出等。
2.1 前后端数据交互
假设一个前后端分离的项目,后端使用 Spring Boot、Spring MVC 框架,前端使用 Vue.js 框架,它们之间需要进行数据交互。
后端代码:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/{id}")
public ResponseEntity getUser(@PathVariable("id") Long id) {
User user = userService.getUserById(id);
return ResponseEntity.ok(user);
}
@PostMapping
public ResponseEntity addUser(@RequestBody User user) {
userService.addUser(user);
return ResponseEntity.ok().build();
}
}
```
前端代码:
```javascript
// 获取用户信息
fetch('/user/1')
.then(response => response.json())
.then(json => {
// 处理获取到的用户信息
});
// 提交用户信息
fetch('/user', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Tom',
age: 18
})
})
.then(response => {
// 处理提交结果
});
```
可以看到,后端通过 ResponseEntity.ok() 方法返回一个 HTTP 状态码为 200 的响应,并将 User 对象转换成 JSON 格式字符串返回给前端。
前端使用 fetch() 方法发送 HTTP 请求,并通过 response.json() 方法将响应的 JSON 格式字符串转换成 JavaScript 对象。
2.2 日志输出
FastJson 还可以将 Java 对象转换成 JSON 格式字符串并输出到日志中,便于查看和分析。
```java
@Slf4j
@Service
public class UserServiceImpl implements UserService {
@Override
public User getUserById(Long id) {
User user = userDao.findById(id);
log.info("getUserById: {}", JSON.toJSONString(user));
return user;
}
@Override
public void addUser(User user) {
userDao.addUser(user);
log.info("addUser: {}", JSON.toJSONString(user));
}
}
```
3. 总结
FastJson 是一个便捷易用的 Java 序列化/反序列化库,能够将 Java 对象转换成 JSON 格式字符串,也可以将 JSON 格式字符串转换成 Java 对象。它适用于很多场景,例如前后端数据交互、日志输出等。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复