我想获得以下XML:
<User id="two">
<id>one</id>
</User>
我尝试使用Jackson XML mapper:
@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)
我可以在一个对象上使用相同的属性和标记名称吗?
答案 0 :(得分:0)
这是一个已知问题,因此您需要针对此案例执行额外的课程。
在localName(localName =&#34; id&#34;)的id前面添加一个空格可以解决这个问题,但是更推荐它来创建一个新的bean。