Java @JacksonXmlProperty(isAttribute=true)未将元素视为属性
我正在尝试从POJO反序列化XML。这是我的POJO课程:Java @JacksonXmlProperty(isAttribute=true)未将元素视为属性,java,pojo,jackson-dataformat-xml,Java,Pojo,Jackson Dataformat Xml,我正在尝试从POJO反序列化XML。这是我的POJO课程: @Getter @Setter @JsonInclude(JsonInclude.Include.NON_NULL) @JacksonXmlRootElement(localName = "user") public final class test { @JacksonXmlProperty(isAttribute = true) private String attr = "help&
@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
@JacksonXmlRootElement(localName = "user")
public final class test {
@JacksonXmlProperty(isAttribute = true)
private String attr = "help";
@JacksonXmlText
private String value;
public test(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper xmlMapper = XmlMapper.builder().addModule(new ParameterNamesModule()).build();
System.out.println(xmlMapper.writeValueAsString(new test("help")));
}
}
Actual Output:
<user><attr>help</attr>help</user>
Expected Output:
<user attr="help">help</user>
Libraries Used:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.12.3</version>
</dependency>
@Getter
@塞特
@JsonInclude(JsonInclude.Include.NON_NULL)
@JacksonXmlRootElement(localName=“user”)
公开期末考试{
@JacksonXmlProperty(isAttribute=true)
私有字符串attr=“help”;
@JacksonXmlText
私有字符串值;
公共测试(字符串值){
这个值=值;
}
公共字符串getValue(){
返回值;
}
公共void设置值(字符串值){
这个值=值;
}
公共静态void main(字符串[]args)引发JsonProcessingException{
ObjectMapper xmlMapper=xmlMapper.builder().addModule(新参数NamesModule()).build();
System.out.println(xmlMapper.writeValueAsString(新测试(“帮助”));
}
}
实际产量:
帮手
预期产出:
帮助
使用的图书馆:
com.fasterxml.jackson.dataformat
jackson数据格式xml
2.12.3
尽管设置了“@JacksonXmlProperty(isAttribute=true)”,但我无法理解为什么要将属性设置为元素。您是否尝试过为
attr
添加一个getter并删除Lombok?使用Randy的建议,在这里对我来说效果很好。添加getter/setter而不使用Lombok可以很好地工作,它会生成:help
对不起,我的错,上面的建议有效。非常感谢。