Enr*_*man 3 java jaxb unmarshalling
注意:
我不需要创建java对象,因为我只需要检查一些值,但我没有找到任何东西将它们解组为通用对象或树或任何东西.像杰克逊的JsonNode.如果这是可能的让我知道,所以我可以避免所有这些混乱的对象来映射一切.
现在的问题是:
我要解组一个简单的xml,但结果总是为null.我尝试了不同的注释,但如果它们没有失败,则结果为null.
这似乎是这个问题的相同情况,但使用相同的注释是行不通的.
xml类似于:
<ServiceList>
<Service Id="1" Code="c" Name="name" ServiceRegistrationStatusID="3" CheckedRegistrationStatusID="2" />
</ServiceList>
Run Code Online (Sandbox Code Playgroud)
我这样解组它:
ServiceList list = JAXB.unmarshal(new StringReader(xml), ServiceList.class);
Run Code Online (Sandbox Code Playgroud)
所以我创建了两个这样的内部类:
@XmlRootElement
public static class ServiceList {
private List<Service> services;
public List<Service> getServices() { return services; }
@XmlElementWrapper(name = "ServiceList")
@XmlElement(name = "Service")
public void setServices(List<Service> services) { this.services = services; }
}
@XmlRootElement(name = "Service")
public static class Service {
private String id;
private String code;
private String name;
private String serviceRegistrationStatusID;
private String checkedRegistrationStatusID;
public String getId() {
return id;
}
@XmlAttribute(name = "Id")
public void setId(String id) {
this.id = id;
}
public String getCode() {
return code;
}
@XmlAttribute(name = "Code")
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
@XmlAttribute(name = "Name")
public void setName(String name) {
this.name = name;
}
public String getServiceRegistrationStatusID() {
return serviceRegistrationStatusID;
}
@XmlAttribute(name = "ServiceRegistrationStatusID")
public void setServiceRegistrationStatusID(String serviceRegistrationStatusID) {
this.serviceRegistrationStatusID = serviceRegistrationStatusID;
}
public String getCheckedRegistrationStatusID() {
return checkedRegistrationStatusID;
}
@XmlAttribute(name = "CheckedRegistrationStatusID")
public void setCheckedRegistrationStatusID(String checkedRegistrationStatusID) {
this.checkedRegistrationStatusID = checkedRegistrationStatusID;
}
}
Run Code Online (Sandbox Code Playgroud)
我在静态方法中解组xml,所以我不得不把pojos作为静态.
对此有何帮助?
提前致谢.
| 归档时间: |
|
| 查看次数: |
5981 次 |
| 最近记录: |