Fastjson 使用详解:Java 对象与 JSON 转换的高性能利器
Fastjson是阿里开源的高性能JSON处理库,主要用于Java对象与JSON字符串的高效转换。本文介绍了其核心功能JSON.toJSONString()和JSON.parseObject()的用法,通过告警对象、Map/List等实战示例演示了对象转JSON的过程,并展示了在WebSocket推送等场景中的应用。文章还提供了Maven依赖配置和注意事项,建议使用最新版本以规避安全风险。Fast
🚀 Fastjson 使用详解:Java 对象与 JSON 转换的高性能利器
✍️ 作者:默语 | 微信:Solitudemind
📬 公众号:默语摸鱼

🧭 摘要
在日常 Java 开发中,Java 对象 与 JSON 字符串的转换 几乎无处不在:API 响应、日志记录、MQ 消息传输、缓存数据结构……如何做到高性能、无侵入地完成这些工作?答案就是:
✅ Fastjson —— 阿里开源的超高性能 JSON 序列化/反序列化库
本文将围绕 Fastjson 的核心功能 JSON.toJSONString(...) 展开讲解,结合典型项目场景,手把手带你用好这个「JSON 转换神器」。
🔍 什么是 Fastjson?
Fastjson 是阿里巴巴开源的 Java 库,用于将 Java 对象与 JSON 数据格式之间进行高效转换。
🚦 核心能力:
- 对象转 JSON (
toJSONString) - JSON 转对象 (
parseObject) - 支持复杂嵌套结构
- 性能极高,压测优于 Jackson、Gson(在大部分场景)
📦 常用 API 一览
| 方法名 | 说明 |
|---|---|
JSON.toJSONString(obj) |
将 Java 对象转为 JSON 字符串 |
JSON.parseObject(jsonStr, Class) |
将 JSON 字符串转为指定类型对象 |
JSON.parseArray(jsonStr, Class) |
将 JSON 字符串转为对象列表 |
✅ 实战示例:对象 → JSON 字符串
以一个告警对象 AlarmIndidentVo 为例,将其转成 JSON 字符串用于前端 WebSocket 推送。
📁 示例代码:
import com.alibaba.fastjson.JSON;
public class FastjsonDemo {
public static void main(String[] args) {
// 创建告警对象
AlarmIndidentVo vo = new AlarmIndidentVo();
vo.setId("ALM20250801");
vo.setLevel("高");
vo.setMessage("测试电压异常告警");
// 对象转 JSON 字符串
String jsonStr = JSON.toJSONString(vo);
// 输出结果
System.out.println("序列化后的 JSON 字符串:\n" + jsonStr);
}
}
🧾 输出结果:
{
"id": "ALM20250801",
"level": "高",
"message": "电压异常告警"
}
🧪 实战进阶:Map / List 结构序列化
✅ 示例 1:Map 转 JSON
Map<String, Object> data = new HashMap<>();
data.put("code", 200);
data.put("msg", "操作成功");
data.put("time", System.currentTimeMillis());
String json = JSON.toJSONString(data);
System.out.println(json);
输出结果:
{"code":200,"msg":"操作成功","time":1691325449353}
✅ 示例 2:List 转 JSON
List<AlarmIndidentVo> list = new ArrayList<>();
list.add(new AlarmIndidentVo("ALM001", "中", "测试数据电箱火警"));
list.add(new AlarmIndidentVo("ALM002", "低", "测试数据电池温度告警"));
String jsonList = JSON.toJSONString(list);
System.out.println(jsonList);
🧩 使用场景示意:配合 WebSocket 推送
client.sendEvent("onVarsChangedPowerCut", JSON.toJSONString(alarmIndidentVos));
✅ 说明:服务端将告警列表序列化为 JSON 字符串,推送给前端客户端,前端通过 Socket.IO 解析后动态展示。
⚙️ Maven 引入方式
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version> <!-- 请使用稳定版本 -->
</dependency>
🔐 注意事项
| ⚠️ 问题 | 📌 建议 |
|---|---|
| JSON 注入漏洞风险? | 使用最新版 Fastjson(1.2.83+)已默认关闭 AutoType 功能 |
| 是否适合长期缓存? | 不建议缓存 JSON 字符串,建议缓存对象或转为 byte 数组 |
| 与 Jackson 混用? | 建议统一使用一种序列化框架,避免冲突 |
🧠 总结
Fastjson 作为阿里出品的高性能 JSON 库,其 JSON.toJSONString(...) 方法极其简洁强大。配合 WebSocket、接口响应、日志存储等场景,能够显著提升开发效率与性能。
一句话总结:
“想把 Java 对象变 JSON 字符串?一行
JSON.toJSONString(obj)就够了。”
📎 参考资料
🎁 获取 Fastjson 全套实战代码 & 项目模板
欢迎添加默语微信 Solitudemind 获取:
- ✅ 城市群 + AI 开发交流群
添加微信备注:AI 开发交流群
👇 添加微信,一起进群摸鱼 👇
📮 微信号:Solitudemind
📢 加入默语共创社群矩阵
和一群优秀的技术人一起探索科技未来,共同成长 🚀
更多推荐




所有评论(0)