You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GSON向JSON数组添加元素并保存到文件?

实现方法

你已经搞定了JSON文件读取的核心步骤,接下来只需要完成元素添加和文件回写这两步就能达成需求啦,具体实现如下:

完整代码示例

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;

public class JsonUpdateDemo {
    public static void main(String[] args) {
        // 可选:用GsonBuilder创建带格式化的实例,输出的JSON更易读;不需要的话直接用new Gson()即可
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        
        try (Reader reader = new FileReader("D:\\file.json")) {
            // 读取JSON文件映射到Test实体类对象
            Test test = gson.fromJson(reader, Test.class);
            
            // 先处理tests列表的空指针问题:如果原JSON里tests是null,先初始化一个空列表
            List<String> testsList = test.getTests();
            if (testsList == null) {
                testsList = new ArrayList<>();
                test.setTests(testsList);
            }
            
            // 向tests数组添加新元素"pinapple"
            testsList.add("pinapple");
            
            // 将更新后的对象写回原JSON文件
            try (Writer writer = new FileWriter("D:\\file.json")) {
                gson.toJson(test, writer);
            }
            
            System.out.println("JSON文件更新完成!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

// 你的Test实体类(确保Getter/Setter已正确实现)
class Test {
    private String name;
    private List<String> tests;

    // Getter方法
    public String getName() { return name; }
    public List<String> getTests() { return tests; }

    // Setter方法
    public void setName(String name) { this.name = name; }
    public void setTests(List<String> tests) { this.tests = tests; }
}

关键细节说明

  • 空指针防护:提前判断tests列表是否为null,避免原JSON中tests字段缺失时调用add()方法抛出异常
  • 元素添加:直接调用List的add()方法,就能把新元素追加到数组末尾
  • 文件回写:用Gson.toJson()将更新后的实体对象重新序列化为JSON,再通过FileWriter写入原文件(如果需要保留原文件备份,可以先写入新文件再替换原文件)

内容的提问来源于stack exchange,提问作者M. Barabas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:03:58