Java 基于输出媒体类型的不同XStream转换器

Java 基于输出媒体类型的不同XStream转换器,java,json,xstream,Java,Json,Xstream,我有一个数据结构,其中包含不同类型的混合列表。我想用XStream对其进行序列化/反序列化,因此我编写了一个转换器,用于生成和读取以下输出: <list> <a foo="x"/> <b bar="y"/> <a foo="z"/> </list> 这不是很漂亮,因为所有的as和bs都被分组在一起,这是可以理解的,但不是我想要看到的 我可以重新设计输出,使其对JSON友好,但我不想更改XML表示 使用XStream,

我有一个数据结构,其中包含不同类型的混合列表。我想用XStream对其进行序列化/反序列化,因此我编写了一个转换器,用于生成和读取以下输出:

<list>
   <a foo="x"/>
   <b bar="y"/>
   <a foo="z"/>
</list>
这不是很漂亮,因为所有的as和bs都被分组在一起,这是可以理解的,但不是我想要看到的

我可以重新设计输出,使其对JSON友好,但我不想更改XML表示


使用XStream,如何根据输出格式以不同的方式封送/解封送对象?解决方案的干扰越小越好。

您使用的是JSONHierarchycalStreamDriver吗?你有没有试过扔掉一个假象?前者被记录为编写优化的JSON。你能提供你的转换器代码吗?@ToYonos我会尽快发布一个MCVE。有关于代码的消息吗?
 "list" : {
    "a" : [ { "@foo" : "x" }, {"@foo" : "z" } ],
    "b" : [ { "@bar" : "y" } ]
 ]