Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-如何将复杂对象(不可序列化)保存到文件中?_Java_Serialization_Jaxb - Fatal编程技术网

Java-如何将复杂对象(不可序列化)保存到文件中?

Java-如何将复杂对象(不可序列化)保存到文件中?,java,serialization,jaxb,Java,Serialization,Jaxb,我正在尝试将以下对象保存到文件中,以供以后使用: public class Templates implements Serializable { private List<ReportTemplate> sources; private List<ReportTemplate> destinations; public List<ReportTemplate> getSources() { return sourc

我正在尝试将以下对象保存到文件中,以供以后使用:

public class Templates implements Serializable {

    private List<ReportTemplate> sources;
    private List<ReportTemplate> destinations;

    public List<ReportTemplate> getSources() {
        return sources;
    }

    public void setSources(List<ReportTemplate> sources) {
        this.sources = sources;
    }

    public List<ReportTemplate> getDestinations() {
        return destinations;
    }

    public void setDestinations(List<ReportTemplate> destinations) {
        this.destinations = destinations;
    }

}
出于某种原因,输出Json添加了“helper”和“observable”键,仅在实际应用程序中,而不是在测试中

Templates
对象包含
ReportTemplate
对象的
ArrayLists
,但没有可观察的内容

测试中的对象和我的应用程序中的对象是相同的,所以我不知道为什么它会变得混乱。

使用Gson() 方法将Java对象转换为JSON字符串。您可以将json字符串保存到xml中

序列化:

Gson gson=new Gson();
String  templateJson=gson.toJson(templateObj);
String templateJson="{.....}"
Templates template = gson.fromJson(templateJson, Templates.class);
反序列化:

Gson gson=new Gson();
String  templateJson=gson.toJson(templateObj);
String templateJson="{.....}"
Templates template = gson.fromJson(templateJson, Templates.class);

自从看到您的答案后,我一直在尝试使用Gson,但只取得了很小的成功。
toJson()
fromJson()
在一个简单的测试中运行良好,但是在我的实际应用程序中,
toJson()
向输出添加了“helper”和“observable”键。当再次尝试加载该文件时,这会导致异常,因为它试图实例化'com.sun.javafx.binding.ExpressionHelper',这是一个抽象类。@Zephyr,你找到解决方案了吗?我几乎是在同一条船上。@A.J.-不,我没有;最终使用了一种完全不同的方法。