小编Piy*_*hre的帖子

使用JAXB仅对选定的字段进行编组

我正在使用JAXB将java对象编组为XML.我面临的问题是,并非所有java对象实例的成员变量都需要编组XML.例如,我的完整XML文档应该看起来像 -

<Disk>
  <status>attached</status>
  <size>10000000000</size>
  <freeSpace>25600000<freeSpace>
  <id>MI45563PO</id>
</Disk>
Run Code Online (Sandbox Code Playgroud)

但是在更新的情况下,只有选定的属性会发生变化,只有更改过的属性应该是编组XML的一部分.就像'status'属性可以改为'detached'一样,在这种情况下,编组的XML应该如下所示 -

<Disk>
  <status>detached</status>
</Disk>
Run Code Online (Sandbox Code Playgroud)

或者,在'freeSpace'的情况下,XML应该看起来像 -

<Disk>
  <freeSpace>20000000<freeSpace>
</Disk>
Run Code Online (Sandbox Code Playgroud)

我的问题:将未更改的字段定义为null(因此将所有基本类型定义为包装类变量,如Integer,Boolean等)是获得所需结果的唯一解决方案?或者,在JAXB中是否有任何方法可以指定所选字段,这些字段应该在结果XML中进行编组,其余字段应该被忽略.

请注意,需要忽略的字段集和需要包含的字段在任何时间点都不固定.

java xml jaxb marshalling

5
推荐指数
1
解决办法
4363
查看次数

标签 统计

java ×1

jaxb ×1

marshalling ×1

xml ×1