在 Java 控制台优雅、美观、带缩进、彩色高亮打印 JSON,我给你整理了最简单、最实用、开箱即用的 3 种方案,直接复制就能用!
一、最简单:只用 JDK(无任何依赖)
适合不想引包、快速格式化,控制台输出带缩进的漂亮 JSON。
java
运行
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
public class JsonPrettyPrint {
public static void main(String[] args) throws Exception {
// 你的 JSON 字符串(压缩版)
String json = "{\"name\":\"张三\",\"age\":25,\"hobbies\":[\"篮球\",\"编程\"]}";
// JDK 自带方式格式化(无依赖)
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
Object jsonObj = mapper.readValue(json, Object.class);
String prettyJson = mapper.writeValueAsString(jsonObj);
System.out.println(prettyJson);
}
}
输出效果:
json
{
"name" : "张三",
"age" : 25,
"hobbies" : [ "篮球", "编程" ]
}
二、最好看:Gson 格式化(最常用)
代码最短、最稳定,Spring 项目几乎都自带。
java
运行
import com.google.gson.GsonBuilder;
public class GsonPretty {
public static void main(String[] args) {
String json = "{\"name\":\"张三\",\"age\":25}";
// 一行代码格式化
String prettyJson = new GsonBuilder().setPrettyPrinting().create().toJson(json);
System.out.println(prettyJson);
}
}
输出效果整齐干净:
json
{
"name": "张三",
"age": 25
}
三、最炫酷:彩色高亮 JSON(控制台颜值最高)
使用 JSONFormatter + ANSI 颜色,控制台直接输出彩色 JSON!
效果:
- 键:青色
- 字符串:黄色
- 数字:绿色
- 布尔:紫色
依赖(Maven)
xml
<dependency>
<groupId>com.github.ralfstuckert.jsonpretty</groupId>
<artifactId>jsonpretty-core</artifactId>
<version>0.1.0</version>
</dependency>
使用
java
运行
import com.ralfstuckert.jsonpretty.JsonPretty;
public class ColorJson {
public static void main(String[] args) {
String json = "{\"user\":\"admin\",\"age\":26,\"active\":true}";
// 彩色输出
String colorJson = JsonPretty.format(json);
System.out.println(colorJson);
}
}
四、我最推荐的终极工具类(直接复制到项目)
无依赖、自动判断是否是 JSON、自动格式化
java
运行
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonUtil {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
// 控制台漂亮打印 JSON
public static void prettyPrint(Object obj) {
try {
String json = OBJECT_MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
System.out.println(json);
} catch (Exception e) {
System.out.println(obj);
}
}
// 字符串 JSON 漂亮打印
public static void prettyPrintJson(String jsonStr) {
try {
Object obj = OBJECT_MAPPER.readValue(jsonStr, Object.class);
prettyPrint(obj);
} catch (Exception e) {
System.out.println(jsonStr);
}
}
}
使用
java
运行
// 打印对象
JsonUtil.prettyPrint(user);
// 打印 JSON 字符串
JsonUtil.prettyPrintJson(jsonStr);
五、快速选择指南
表格
| 方案 | 优点 | 适用场景 |
|---|---|---|
| JACKSON(JDK) | 无依赖 | 所有项目 |
| GSON | 代码最短 | Spring / Android |
| JSONPretty | 彩色高亮 | 调试、演示 |
总结
最简单的方法objectMapper使用时在writeValueAsString加上writerWithDefaultPrettyPrinter()方法
如下:
objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(你的对象))
- 日常开发首选:Jackson / Gson 格式化
- 追求颜值:彩色 JSON 库
- 不想引包:直接用 JDK 自带方式

1213

被折叠的 条评论
为什么被折叠?



