gpt4 book ai didi

java - jackson fasterxml 多个同名元素

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

我需要生成确认此 XSD 的 XML:

<xsd:element name="Line" type="Line" minOccurs="0" maxOccurs="3"/>

所以输出是这样的:

<root>
<Line>A</Line>
<Line>B</Line>
<Line>C</Line>
</root>

问题是,如果我像这样在 Java bean 中注释变量:

@JsonProperty("Line")
private String Line1;

@JsonProperty("Line")
private String Line2;

@JsonProperty("Line")
private String Line3;

然后我得到一个异常,如果我使用 List然后输出就出错了,比如:

   <root>
<Line>
<Line>1 New Orchard Road</Line>
<Line>Armonk</Line>
</Line>
</root>

和 parent 一起<Line>元素过剩。有解决办法吗?

最佳答案

您只需要正确的 jackson 注释:

public class ListTest
{
@JacksonXmlElementWrapper(useWrapping = false)
public List<String> line = new ArrayList<>();
}

测试:

public static void main(String[] args)
{
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper mapper = new XmlMapper(module);
ListTest lt = new ListTest();
lt.line.add("A");
lt.line.add("B");
lt.line.add("C");
try {
mapper.writeValue(System.out, lt);
} catch (Exception e) {
e.printStackTrace();
}
}

输出:

<ListTest><line>A</line><line>B</line><line>C</line></ListTest>

关于java - jackson fasterxml 多个同名元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35155640/

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