商城首页欢迎来到中国正版软件门户

您的位置:首页 >Java 使用 Gson 生成格式化 JSON 数组方法

Java 使用 Gson 生成格式化 JSON 数组方法

  发布于2026-04-12 阅读(0)

扫一扫,手机访问

如何在 Java 中使用 Gson 正确生成格式化的 JSON 数组

本文讲解如何利用 Gson 库将多个 Java 对象序列化为结构清晰、符合 JSON 标准的数组格式(而非拼接的多个独立对象),避免非法 JSON 问题,并实现自动缩进美化输出。

本文讲解如何利用 Gson 库将多个 Java 对象序列化为结构清晰、符合 JSON 标准的数组格式(而非拼接的多个独立对象),避免非法 JSON 问题,并实现自动缩进美化输出。

在 Java 中使用 Gson 将对象转为 JSON 时,一个常见误区是逐个调用 toJson() 并字符串拼接(如 json += new Gson().toJson(obj))。这种方式看似简单,实则生成的是多个独立 JSON 值(如 {}{}),不符合 JSON 规范——合法的 JSON 文档必须且仅有一个根值,而数组 [] 或对象 {} 才是合法根,连续的 {} 不是有效 JSON。

正确做法是:先将所有对象统一放入集合(如 List<T>),再对整个集合调用 Gson.toJson()。Gson 会自动将其序列化为标准 JSON 数组。以下是修正后的完整示例:

import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        Fencers fencer1 = new Fencers("m", "egy", 100);
        Fencers fencer2 = new Fencers("342", "egy", 120);

        // ✅ 正确:封装为 List,再整体转换
        List<Fencers> fencerList = new ArrayList<>();
        fencerList.add(fencer1);
        fencerList.add(fencer2);

        Gson gson = new Gson();
        String json = gson.toJson(fencerList);
        System.out.println(json);
    }
}

输出结果即为标准、可解析的 JSON 数组:

[
  {
    "name": "m",
    "nation": "egy",
    "id": 100
  },
  {
    "name": "342",
    "nation": "egy",
    "id": 120
  }
]

⚠️ 进阶提示:启用格式化输出(美化)
若需带缩进和换行的“漂亮打印”(pretty-print),请使用 GsonBuilder:

Gson gson = new GsonBuilder()
    .setPrettyPrinting()  // 启用格式化
    .create();
String json = gson.toJson(fencerList);

关键总结

  • ❌ 避免 toJson(obj1) + toJson(obj2) —— 生成非法 JSON;
  • ✅ 始终用 List<T> / T[] 包裹多个对象,再 toJson(collection);
  • ✅ 使用 GsonBuilder.setPrettyPrinting() 获得易读格式;
  • ? 若涉及日期、空值等特殊处理,可通过 GsonBuilder 进一步配置(如 serializeNulls()、setDateFormat())。

这样即可确保生成的 JSON 既合法又专业,无缝对接前端、API 或文件持久化场景。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注