在本文中,我们将深入探讨如何在 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 字符串,我们将使用 GsonBuilder
的 setPrettyPrinting()
方法:
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)