我的数据结构包含不同类型的混合列表。我想用XStream对它进行序列化/反序列化,所以我编写了一个生成(并读取)以下输出的转换器:
<list>
<a foo="x"/>
<b bar="y"/>
<a foo="z"/>
</list>
现在这种方法非常有效,而输出格式是XML。但是当然当相同的转换器写入JSON流时,我得到了这个:
"list" : {
"a" : [ { "@foo" : "x" }, {"@foo" : "z" } ],
"b" : [ { "@bar" : "y" } ]
]
这并不是那么美丽,因为所有a
和b
都被组合在一起,这是可以理解的,但不是我想要看到的。
我可以重新设计输出以使其对JSON友好,但我不想更改XML表示。
如何(如果有的话)XStream可以根据输出格式不同地编组/解组对象?解决方案越少侵入性越好。