有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么这个gson函数会保存一个空白文件?

我正在尝试创建一个java应用程序,我有一个关于gson API中函数的问题。为什么这行代码生成一个空json文件而没有显示任何错误

复制此问题的示例对象:

public class Employee {

    private String name;
    private String occupation;

    public Employee(String name, String occupation) {
        super();
        this.name = name;
        this.occupation = occupation;
    }

    public String getName() {
        return name;
    }

    public String getDescription() {
        return description;
    }

}
//this refers to a simple java object that works with gson
gson.toJson(this, new FileWriter(new File("somefile.json")));

共 (1) 个答案

  1. # 1 楼答案

    我尝试使用HashMap对象,因为OP没有java对象,但它应该可以与任何其他类型的java对象一起使用
    它工作正常,问题出在作者身上,你需要刷新内容并关闭流

            Map<String, String> map = new HashMap<>();
            map.put("a","b");
            map.put("c","d");
            Gson gson = new Gson();
            FileWriter writer = new FileWriter(new File("somefile.json"));
            gson.toJson(map, writer);
            writer.flush();
            writer.close();
    

    文件内容:

    {"a":"b","c":"d"}
    

    以上代码可以写成

    try(FileWriter writer = new FileWriter(new File("somefile.json"))) {
        gson.toJson(map, writer);
        writer.flush();
    }
    

    在这里,您不需要显式地关闭流,这种代码样式比第一种更可取,并且避免了将来出现任何此类错误