我希望能够根据列表中包含的对象类型为根列表元素添加别名。例如,这是我当前的输出:
<list>
<coin>Gold</coin>
<coin>Silver</coin>
<coin>Bronze</coin>
</list>
这就是我想要的样子:
<coins>
<coin>Gold</coin>
<coin>Silver</coin>
<coin>Bronze</coin>
</coins>
我可以在全球范围内做到这一点,方法是说所有列表都应以硬币为别名,但是我有很多不同的列表,这是行不通的。有关如何执行此操作的任何想法?似乎它应该很简单,但事实并非如此。
编辑:我应该指定,我正在尝试将对象序列化为xml。我正在使用Spring 3 MVC作为我的Web框架。
假设您有一个带有type属性的Coin类,如下所示:
@XStreamAlias("coin")
public class Coin {
String type;
}
并且您有一个Coins类,其中包含Coin列表:
@XStreamAlias("coins")
public class Coins{
@XStreamImplicit
List<Coin> coins = new ArrayList<Coin>();
}
注意注释。该列表是隐式的,Coins类将显示为“ coins”。
输出将是:
<coins>
<coin>
<type>Gold</type>
</coin>
<coin>
<type>Silver</type>
</coin>
<coin>
<type>Bronze</type>
</coin>
</coins>
您要求的不一样,但这是有原因的。
首先,钱币只有一个属性,但是我们不确定要显示的所有对象是否也只有一个属性。因此,我们需要知道我们在谈论哪个对象属性。
您还可以将“硬币”属性显示为XML属性,而不是字段。如下:
@XStreamAlias("coin")
public class Coin {
@XStreamAsAttribute
String type;
Coin(String type) {
this.type = type;
}
}
这是输出:
<coins>
<coin type="Gold"/>
<coin type="Silver"/>
<coin type="Bronze"/>
</coins>
希望能帮助到你。
假设我有以下列表: 我想通过它并选择元素,使得前后的元素大于1,结果应该是: 我试着做了,但这给出了所有大于1的元素,即:。注意第0个元素,因为前面没有元素,所以我们应该只看第1个元素。
问题内容: 给出以下列表: 我想将[a]的每个元素重复其在[b]中的对应位置的编号,以产生此结果: 即0发生1次,5发生2次,1发生1次。 问题答案: 内容如下: -重复elem次 从两个列表中组成一个2元组的列表,将每个元素与另一个列表中的对应元素配对。这为您提供了用例中需要传递给的确切信息。 -将迭代器的结果列表展平为单个值列表。您既可以像我一样,也可以像马丁·彼得斯那样。
问题内容: 我有一个清单清单: 我想从列表中删除所有不满足条件的元素。 因此,如果我想删除与之相对应的元素。 所以list_1将被修改为 我该如何选择性地做到这一点? 问题答案: 您也可以根据需要使用该条件。
问题内容: 我有两个看起来像的清单: 我要做的是将list1的所有那些元素都保留在list2中。结果应该是: 问题答案: 使用运算符,您可以检查元素是否在序列中。 使用列表理解: 但是效率不高。您最好转换为对象。
问题内容: 我有一个列表,我想找到连续元素之间的区别: 您将如何编码find_diff()函数?我可以使用“ for”迭代器对此进行编码,但是我敢肯定,有一种非常简单的方法可以使用一个简单的内衬进行编码。 问题答案: 您可以利用,并列出理解: 在性能方面,似乎并没有太大的差异:
问题内容: 如果您具有这样的功能: 如果getUsers返回仅包含一个元素的,则生成的JSON只是JSON对象,而不是JSON数组。 是否有使XStream返回JSON数组的变通办法,而不管该函数是否返回单个数组List? 问题答案: 解决方案是降级到Jettison 1.2 根据XStream数组错误https://github.com/jettison- json/jettison/issue