首页 > 解决方案 > 使用 gson 时的空 json 文件

问题描述

当我运行此代码时,文件被创建,但它是空的,虽然输出看起来不错

import java.io.IOException;

public class JasonTest {
    public static void main(String[] args) throws IOException {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        TestJson tj = new TestJson(13, "kuku");
        gson.toJson(tj, new FileWriter("test.json"));
        System.out.println(gson.toJson(tj));

    }
}

输出:

{
  "num": 13,
  "text": "kuku"
}

Process finished with exit code 0

标签: javagson

解决方案


看到这个问题。您需要关闭FileWriter(如果目前还不能关闭,则刷新)。就像:

FileWriter fw = new FileWriter("test.json");
gson.toJson(tj, fw);
fw.close();

或更好的尝试/资源:

// Does auto close
try(FileWriter fw = new FileWriter("test.json")) {
    gson.toJson(tj, fw);            
}

推荐阅读