网站首页 > 精选文章 / 正文
整体对比结果
框架 | 性能 | 易用性 | 安全性 | 特点 | 依赖大小 |
Jackson | SpringBoot默认,功能最全面 | 1.2MB | |||
Gson | Google出品,API极简 | 700KB | |||
Fastjson | (序列化) | 阿里系,中文处理快,高危漏洞多 | 2.4MB | ||
JSON-B | Jakarta EE标准,与XML统一 | 1.1MB | |||
Hutool JSON | 国产工具集,零依赖,API极简 |
不同框架序列化实现
Jackson
// 序列化
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT); // 美化输出
String json = mapper.writeValueAsString(user);
// 反序列化
User user = mapper.readValue(json, User.class);
// 注解示例
public class User {
@JsonProperty("user_name")
private String name;
@JsonIgnore
private String password;
}
Gson
// 序列化
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(user);
// 反序列化
User user = gson.fromJson(json, User.class);
// 自定义适配器
Gson gson = new GsonBuilder()
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeAdapter())
.create();
Fastjson
// 序列化
String json = JSON.toJSONString(user, SerializerFeature.PrettyFormat);
// 反序列化
User user = JSON.parseObject(json, User.class);
// JSONPath查询
String name = (String) JSONPath.eval(json, "$.user.name");
JSON-B (Yasson实现)
// 序列化
Jsonb jsonb = JsonbBuilder.create();
String json = jsonb.toJson(user);
// 反序列化
User user = jsonb.fromJson(json, User.class);
// 注解示例
public class User {
@JsonbProperty("full_name")
private String name;
@JsonbTransient
private String password;
}
Hutool JSON
// 序列化(支持多种输入类型)
String json = JSONUtil.toJsonStr(user);
// 序列化(美化输出)
String prettyJson = JSONUtil.toJsonPrettyStr(user);
// 反序列化(到JavaBean)
User user = JSONUtil.toBean(json, User.class);
// 动态操作(无需定义Bean)
JSONObject jsonObj = JSONUtil.parseObj(json);
jsonObj.set("age", 30).set("address", "北京");
// XML转JSON
String json = JSONUtil.toJsonStr(XMLUtil.parseXml(xmlStr));
Tags:java jsonpath
猜你喜欢
- 2025-06-09 Jmeter(二十):jmeter对图片验证码的处理
- 2025-06-09 警告!Kubernetes集群正在遭挖矿劫持,这一次目标是Kubeflow,微软ASC呼吁:不要随意更改默认设置
- 2025-06-09 王炸!程序员必备的JSON可视化工具!
- 2025-06-09 @RequestParam、@RequestBody、@PathVariable区别和案例分析
- 2025-06-09 基于 Kubernetes 部署容器平台kubesphere
- 2025-06-09 前端如何做大量的数据校验?json schema配置详解
- 2025-06-09 从源码看Log4j2、FastJson漏洞(log4j info)
- 2025-06-09 深入解析 MySQL 8.0 JSON 相关函数:解锁数据存储的无限可能
- 2025-06-09 微服务测试的不同策略之测试Java微服务,看完秒懂
- 2025-06-09 如何统一处理 Spring Boot Web 请求的 JSON 日期格式