首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java序列化到XML

Java序列化到XML
EN

Stack Overflow用户
提问于 2013-11-20 06:14:30
回答 2查看 144关注 0票数 0

我目前正在使用默认的Java序列化机制来序列化我的Java实例。我想切换到另一种独立于Java版本的格式。我考虑过使用JAXB,但我想我遇到了重复的问题。具体来说,请考虑以下内容:

代码语言:javascript
复制
A a = new A();
B b = new B();
C c = new C();
a.c = c;
b.c = c;

如果我使用默认的Java序列化机制来序列化a和b,我最终只会得到一个c实例。JAXB会序列化两次(除非我弄错了,请纠正我)。

这里对我来说最好的选择是什么?有没有其他方法可以将已经序列化的实例转换为XML?

EN

回答 2

Stack Overflow用户

发布于 2013-11-20 06:21:38

您可以编写自己的序列化程序/反序列化程序。但是要达到您想要的效果,就必须在c中将每个c的状态保持为XML。

您可以在对象中实现getXml()方法,如下所示

代码语言:javascript
复制
Node getXml() {
    if( this.nodeCache == null ) 
        ... create nodeCache node from c ...

    return this.nodeCache;
}

要构建XML,需要将每个子对象作为节点请求,并将其链接到最终的DOM树中。然后将DOM写入磁盘。

这里的复杂之处在于,当节点缓存变脏时,要在应用程序中找到正确的位置。我不知道周围是否有自动序列化程序支持你这样做。

票数 0
EN

Stack Overflow用户

发布于 2015-07-24 04:40:39

“简单XML序列化”项目

查看Simple XML Serialization项目。这确实是一种非常简单方法,可以将对象的数据写出到存储中,如果需要,稍后再将数据重新合并到对象中。

比JAXB简单得多。通过查看文档中的示例,您可以在几分钟内开始。" simple“适用于不需要JAXB的所有特性和灵活性的简单情况。

在使用这个可靠的库时,我唯一的挫败感是它的特定名称给谷歌带来的困难。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20083179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档