Hoo*_*oli 3 java xml xsd jackson
我需要生成确认此 XSD 的 XML:
<xsd:element name="Line" type="Line" minOccurs="0" maxOccurs="3"/>
所以输出是这样的:
<root>
<Line>A</Line>
<Line>B</Line>
<Line>C</Line>
</root>
Run Code Online (Sandbox Code Playgroud)
问题是,如果我注释 Java bean 中的变量,例如:
@JsonProperty("Line")
private String Line1;
@JsonProperty("Line")
private String Line2;
@JsonProperty("Line")
private String Line3;
Run Code Online (Sandbox Code Playgroud)
然后我得到一个异常,如果我使用 aList那么输出就会出错,比如:
<root>
<Line>
<Line>1 New Orchard Road</Line>
<Line>Armonk</Line>
</Line>
</root>
Run Code Online (Sandbox Code Playgroud)
父<Line>元素过多。有没有解决的办法?
您只需要正确的 jackson 注释:
public class ListTest
{
@JacksonXmlElementWrapper(useWrapping = false)
public List<String> line = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
测试:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
<ListTest><line>A</line><line>B</line><line>C</line></ListTest>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4263 次 |
| 最近记录: |