java - 如何使用 jaxb 读取属性?

标签 java spring jaxb xml-deserialization

鉴于此 XML:

<response>
    <detail Id="123" Length="10" Width="20" Height="30" />
</response>

这就是我现在拥有的,但它不起作用(我得到的结果是空的):

@XmlRootElement(name="response")
public class MyResponse {
    List<ResponseDetail> response;
    //+getters +setters +constructor
}

public class MyResponseDetail {
    Integer Id;
    Integer Length;
    Integer Width;
    Integer Height;
    //+getters +setters
}

我正在使用 RestOperations 调用远程服务我想解析 <detail ..>元素。我试过同时通过 MyResponseMyResponseDetailRestOperations但结果总是空的。

我的对象结构应该是什么样子才能匹配该 XML?

最佳答案

你需要这样注释你的类:

@XmlRootElement
public class Response {

    private List<Detail> detail;

    public void setDetail(List<Detail> detail) {
        this.detail = detail;
    }
    public List<Detail> getDetail() {
        return detail;
    }

}

public class Detail {

    private String id;
    /* add other attributes here */

    @XmlAttribute(name = "Id")
    public void setId(String id) {
        this.id = id;
    }
    public String getId() {
        return id;
    }

}

关于java - 如何使用 jaxb 读取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232795/

相关文章:

java - 为什么我会收到这个结果? java

java - @XmlSeeAlso 也有多个参数

java - JAXB 从 xsd 文件生成的类

java - 如何将带有句点(.)的xml标签转换为jaxb变量

java - NotifyBuilder 在重复运行时表现不一致

java - 我怎样才能避免在子类中创建无用的传递构造函数只是为了将参数传递给 "super()"?

java - 使用当前年份的 JPA/Hibernate 主键值序列

java - Spring 应用程序消耗所有 CPU 然后崩溃

java - 如何将 ResponseEntity 写入 HttpServletResponse?

java - Spring Reactive Web - 异常总是包含在 500 中