在本文中,我们将深入探讨如何在 Java 中格式化 JSON 数据以增强其可读性。

在处理大量的 JSON 对象时,理解和调试它们可能是一项艰巨的任务。因此,采用格式化输出 JSON 对象的方法变得至关重要。

为此,我们可以使用 Gson 库的功能。Gson 提供了便捷的方法来生成格式良好的 JSON 输出。

首先,添加 Gson Maven 依赖项:

1
2
3
4
5
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>

gson 版本根据实际情况进行选择,建议使用最新版本(见 Maven Central )。

本文使用的是 2.10.1 版本(当前最新版本)。

为了格式化打印 JSON 字符串,我们将使用 GsonBuildersetPrettyPrinting() 方法:

1
2
3
4
5
public static String prettyJson(String uglyJsonString) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonElement jsonElement = JsonParser.parseString(uglyJsonString);
return gson.toJson(jsonElement);
}

以下代码演示了如何使用 prettyJson() 方法来格式化并打印输出 JSON 字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;

public class JsonFormatter {
public static String prettyJson(String uglyJsonString) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonElement jsonElement = JsonParser.parseString(uglyJsonString);
return gson.toJson(jsonElement);
}

public static void main(String[] args) {
String uglyJsonString = "{\"distinct_id\":\"8id2328069391\",\"lib\":{\"$lib\":\"MiniProgram\",\"$lib_method\":\"code\",\"$lib_version\":\"10.20.32\"},\"properties\":{\"$lib\":\"MiniProgram\",\"$lib_version\":\"1.13.2\",\"title\":\"茅台(MOUTAI)贵州茅台酒 酱香型白酒 礼盒送礼酒水 茅台飞天43度500ml(带杯)\",\"appName\":\"活动商城\",\"versionCode\":\"2.1.39\",\"appid\":\"59f9f09a\",\"$network_type\":\"wifi\",\"$manufacturer\":\"devtools\",\"$model\":\"iPhone X\",\"$screen_width\":375,\"$screen_height\":812,\"$os\":\"iOS\",\"$os_version\":\"10.0.1\",\"id\":81412,\"user_id\":14969468,\"phone\":\"13725459365\",\"$latest_scene\":\"发现栏小程序主入口,“最近使用”列表\",\"$referrer\":\"shop/pages/data\",\"$url_path\":\"shop/pages/user/data\",\"$is_first_day\":false},\"type\":\"track\",\"event\":\"$MPViewScreen\",\"time\":1689648201789}";
String prettyJsonString = prettyJson(uglyJsonString);
System.out.println(prettyJsonString);
}
}

运行该代码,可以看到格式良好的 JSON 字符串在控制台上输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"distinct_id": "8id2328069391",
"lib": {
"$lib": "MiniProgram",
"$lib_method": "code",
"$lib_version": "10.20.32"
},
"properties": {
"$lib": "MiniProgram",
"$lib_version": "1.13.2",
"title": "茅台(MOUTAI)贵州茅台酒 酱香型白酒 礼盒送礼酒水 茅台飞天43度500ml(带杯)",
"appName": "活动商城",
"versionCode": "2.1.39",
"appid": "59f9f09a",
"$network_type": "wifi",
"$manufacturer": "devtools",
"$model": "iPhone X",
"$screen_width": 375,
"$screen_height": 812,
"$os": "iOS",
"$os_version": "10.0.1",
"id": 81412,
"user_id": 14969468,
"phone": "13725459365",
"$latest_scene": "发现栏小程序主入口,“最近使用”列表",
"$referrer": "shop/pages/data",
"$url_path": "shop/pages/user/data",
"$is_first_day": false
},
"type": "track",
"event": "$MPViewScreen",
"time": 1689648201789
}

(END)