gpt4 book ai didi

java - jackson XML 解析

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

jackson 2.2.3

首先,请原谅我的愚蠢错误,我在断开网络连接,所以我不得不手动重新输入)

我有以下 XML:

<orgs>
<org name="Test1">
<item>a</item>
<item>b</item>
</org>
<org name="Test2">
<item>c</item>
<item>d</item>
<item>e</item>
</org>
</orgs>

我有下面的类来解析这个:

@XmlRootElement(name = "orgs")
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlOrgElements {

private List<Org> orgs;

public List<Org> getOrgs() {
return orgs;
}

public void setOrg(List<Org> orgs) {
this.orgs = orgs;
}

public class Org {
@JacksonXmlProperty(isAttribute = true)
private String name;
private List<Item> items;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List<Item> getItems() {
return items;
}

public void setName(List<Item> items) {
this.items = items;
}
}

public class Item {
@JacksonXmlText
private String item;

public String getItem() {
return item;
}

public void setItem(String item) {
this.item = item;
}
}
}

但我得到的只是“orgs=null”。有谁知道为什么?

最佳答案

您需要为列表启用解包处理;默认是使用“wrapped”格式。诊断此问题的最佳方法是从 Java 对象开始,序列化为 XML,然后查看输出格式是什么。这给出了结构有何不同的想法。

如果你想默认为展开样式,你可以使用:

JacksonXmlModule module = new JacksonXmlModule();
module.setDefaultUseWrapper(false);
mapper.registerModule(module);

还有一个注解@JacksonXmlElementWrapper:

public class Bean {
@JacksonXmlElementWrapper(useWrapping=false)
public List<Stuff> entry;
}

在每个列表属性的基础上改变行为。

关于java - jackson XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23394987/

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