gpt4 book ai didi

java - 使用 JAXB 映射到对象时如何忽略 XML 中的元素/属性?

转载 作者:行者123 更新时间:2023-11-30 08:55:40 25 4
gpt4 key购买 nike

我正在使用 JAXB 2.0 将 XML 字符串映射到 POJO 中,反之亦然,我希望能够确定 XML 中应该映射到我带注释的 POJO 类中的元素。

假设我有以下 XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="1">
<firstName>Peter</firstName>
<lastName>Parker</lastName>
<socialSecurityNumber>112233445566</socialSecurityNumber>
</customer>

我想将它映射到一个省略了 socialSecurityNumber 元素的类:

@XmlRootElement
public class Customer {
private Integer id;
private String firstName;
private String lastName;

public Customer() {
}

public Customer(Integer id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}

@XmlAttribute
public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

@XmlElement(nillable = true)
public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

@XmlElement(nillable = true)
public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}
}

如果我尝试解码它,我会得到错误:

unexpected element (uri:"", local:"socialSecurityNumber"). Expected elements are <{}lastName>

是否可以忽略 XML 中不存在于我的 POJO 类中的元素/属性?

最佳答案

默认情况下,JAXB 不应该提示额外的元素。但是,您可以在 unmarshall 上指定一个 ValidationEventHandler 的实例,以获得您正在寻找的行为。

关于java - 使用 JAXB 映射到对象时如何忽略 XML 中的元素/属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28910768/

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