gpt4 book ai didi

java - 如何使用 JAXB 注释字符串列表的列表?

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:10 25 4
gpt4 key购买 nike

假设我有以下内容:

@XmlRootElement(name = "foo1")
public class Foo1
{
@XmlElementWrapper( name="answerList" )
@XmlElement( name="answer" )
private List<String> answerList;
}

如果 Foo1 实例被编码,它看起来像这样

<foo1>
<answerList>
<answer>myAnswer1</answer>
<answer>myAnswer2</answer>
</answerList>
</foo1>

现在,如果我有以下属性:

private List<List<String>> answerListsList;

我如何注释上面的属性,以便获得以下 XML(当然,无需创建新类来保存字符串列表)?

<foo1>
<answerLists>
<answerList>
<answer>row1 myAnswer1</answer>
<answer>row1 myAnswer2</answer>
</answerList>
<answerList>
<answer>row2 myAnswerA</answer>
<answer>row2 myAnswerB</answer>
</answerList>
<anserLists>
</foo1>

编辑:

不想创建新类的原因是我试图避免创建太多类。在我看来,为您可能拥有的每个字符串列表创建一个新类(碰巧使用不同的元素名称)并不是一个好的设计。

我可以考虑创建一个新类作为答案,只要该类可以根据需要编码到不同的元素名称和元素包装器中。例如,该类应该能够表示以下 XML:

<answerLists>
<answerList>
<answer>row1 myAnswer1</answer>
<answer>row1 myAnswer2</answer>
</answerList>
<answerList>
<answer>row2 myAnswerA</answer>
<answer>row2 myAnswerB</answer>
</answerList>
<anserLists>

<myLists>
<myList>
<item>row1 d1</item>
<item>row1 d2</item>
</myList>
<myList>
<item>row2 dA</item>
<item>row2 dB</item>
</myList>
</myLists>

最佳答案

如果不创建新类,您将无法获得所需的 XML!

我写了这个类:

@XmlRootElement( name="foo1" )
@XmlAccessorType(XmlAccessType.FIELD)
public class Foo1<T>
{
@XmlElementWrapper( name="answerList" )
@XmlElement( name="answer" )
List<T> answerList = new ArrayList<T>();
}

List in List 的用法是这样的:

Foo1<Foo1<String>> ff = new Foo1<Foo1<String>>();  

但是输出的 XML 并不是您想要的,因为如果不创建新类就无法生成您想要的 XML!

关于java - 如何使用 JAXB 注释字符串列表的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com