gpt4 book ai didi

java - 具有相同名称的 Jackson XML 标记和属性

转载 作者:行者123 更新时间:2023-12-05 07:39:12 25 4
gpt4 key购买 nike

我想获取以下 XML:

<User id="two">
<id>one</id>
</User>

我尝试为此使用 Jackson XML 映射器:

@JacksonXmlRootElement
public class User {
private String id;

private String attributeId;

public User(final String id, final String attributeId) {
this.id = id;
this.attributeId = attributeId;
}

@JacksonXmlProperty(localName = "id")
public String getId() {
return id;
}

@JacksonXmlProperty(localName = "id", isAttribute = true)
public String getAttributeId() {
return attributeId;
}

public static void main(String[] args) throws IOException {
final XmlMapper xmlMapper = new XmlMapper();
final File file = new File("user.xml");
final User user = new User("one", "two");

xmlMapper.writeValue(file, user);
}
}

但我得到的只是这个异常

java.lang.IllegalArgumentException: Conflicting getter definitions for property "id": com.sbconverter.parser.slovoed.User#getId(0 params) vs com.sbconverter.parser.slovoed.User#getAttributeId(0 params)

我可以在一个对象上使用相同的属性和标签名称吗?

最佳答案

这是一个已知问题,因此您需要为这种情况做额外的类(class)。

在localName处id前面加一个空格(localName = "id")可以解决这个问题,但是更推荐做一个新的bean。

关于java - 具有相同名称的 Jackson XML 标记和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47199799/

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