🚀 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

📢 加入默语共创社群矩阵
和一群优秀的技术人一起探索科技未来,共同成长 🚀

👉 点击此处,加入核心学习团队

更多推荐