- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 JAXB 编码和解码的新手,我正在尝试将嵌套 XML 解码到 Java POJO 类,但我在解码对象中得到 null。另外我想确认我是否已为相应的 XML 正确创建了 POJO 类。
XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<ebo:EBO xmlns:ebo="http://service.gap.com/schemas/Tracking" xmlns:esb="http://service.gap.com/schemas/ESBHeader" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.service.gap.com/DeleteItemEBO DeleteItemEBO.xsd">
<esb:ESBHeader>
<esb:EnvironmentName>Development</esb:EnvironmentName>
<esb:VersionNbr>1.0</esb:VersionNbr>
<esb:BusinessEvent>
<esb:TransactionTypeCode>Delta</esb:TransactionTypeCode>
<esb:Description></esb:Description>
<esb:Timestamp>2017-10-26T16:30:13.154-07:00</esb:Timestamp>
<esb:EventID>01</esb:EventID>
<esb:TotalRecordCount>1</esb:TotalRecordCount>
</esb:BusinessEvent>
</esb:ESBHeader>
<ebo:EBOPayload>
<ebo:Item ebo:ActionTypeCode="DELETE">
<ebo:BrandId>2</ebo:BrandId>
<ebo:ItemID>12345</ebo:ItemID>
<ebo:PurgeLevelCd>k</ebo:PurgeLevelCd>
<ebo:PurgeDate>2017-10-26</ebo:PurgeDate>
</ebo:Item>
</ebo:EBOPayload>
</ebo:EBO>
JAXBExample.java 文件
public class JAXBExample {
public static void main(String [] args){
try{
File file = new File("C:\\file.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
EBO ebo = (EBO) jaxbUnmarshaller.unmarshal(file);
System.out.println(EBO.getPayload());
}
catch(Exception ex){
System.out.println("JAXB Exception" +ex);
}
POJO 类:
EBO.java
@XmlRootElement(name = "ebo")
public class EBO {
private ESBHeader esbHeader;
private EBOPayload eboPayload;
public ESBHeader getEsbHeader() {
return esbHeader;
}
@XmlElement(name = "ESBHeader")
public void setEsbHeader(ESBHeader esbHeader) {
this.esbHeader = esbHeader;
}
public EBOPayload getEboPayload() {
return eboPayload;
}
@XmlElement(name = "EBOPayload")
public void setEboPayload(EBOPayload eboPayload) {
this.eboPayload = eboPayload;
}
}
ESBHeader.java
public class ESBHeader {
private String environmentName;
private String versionNbr;
private List<BusinessEvent> businessEvent;
public String getEnvironmentName() {
return environmentName;
}
@XmlElement(name = "EnvironmentName")
public void setEnvironmentName(String environmentName) {
this.environmentName = environmentName;
}
public String getVersionNbr() {
return versionNbr;
}
@XmlElement(name = "VersionNbr")
public void setVersionNbr(String versionNbr) {
this.versionNbr = versionNbr;
}
public List<BusinessEvent> getBusinessEvent() {
return businessEvent;
}
@XmlElement(name = "BusinessEvent")
public void setBusinessEvent(List<BusinessEvent> businessEvent) {
this.businessEvent = businessEvent;
}
}
BusinessEvent.java
public class BusinessEvent {
private String transactionTypeCode;
private String timestamp;
private String eventID;
private String totalRecordCount;
private String description;
public String getTransactionTypeCode() {
return transactionTypeCode;
}
@XmlElement(name = "TransactionTypeCode")
public void setTransactionTypeCode(String transactionTypeCode) {
this.transactionTypeCode = transactionTypeCode;
}
public String getDescription() {
return description;
}
@XmlElement(name = "Description")
public void setDescription(String description) {
this.description = description;
}
public String getTimestamp() {
return timestamp;
}
@XmlElement(name = "Timestamp")
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
public String getEventID() {
return eventID;
}
@XmlElement(name = "EventID")
public void setEventID(String eventID) {
this.eventID = eventID;
}
public String getTotalRecordCount() {
return totalRecordCount;
}
@XmlElement(name = "TotalRecordCount")
public void setTotalRecordCount(String totalRecordCount) {
this.totalRecordCount = totalRecordCount;
}
}
EBOPayload.java
public class EBOPayload {
private List<Item> item;
public List<Item> getItem() {
return item;
}
@XmlElement(name = "Item")
public void setItem(List<Item> item) {
this.item = item;
}
}
项目.java
public class Item {
private String brandId;
private String itemID;
private String purgeLevelCd;
private String purgeDate;
public String getBrandId() {
return brandId;
}
@XmlElement(name = "BrandId")
public void setBrandId(String brandId) {
this.brandId = brandId;
}
public String getItemID() {
return itemID;
}
@XmlElement(name = "ItemID")
public void setItemID(String itemID) {
this.itemID = itemID;
}
public String getPurgeLevelCd() {
return purgeLevelCd;
}
@XmlElement(name = "PurgeLevelCd")
public void setPurgeLevelCd(String purgeLevelCd) {
this.purgeLevelCd = purgeLevelCd;
}
public String getPurgeDate() {
return purgeDate;
}
@XmlElement(name = "PurgeDate")
public void setPurgeDate(String purgeDate) {
this.purgeDate = purgeDate;
}
}
最佳答案
可以在标签 @XMLRootElement 和 @XMLElement 中添加另一个属性“namespace”引用链接:http://www.mysamplecode.com/2012/06/jaxb-convert-java-object-xml.html
关于java - 嵌套 XML 解码到 POJO 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298309/
我刚刚发现了 Camel,它似乎正是我所需要的。 我有几个知道如何处理特定输入数据的构建 block ,所以我想创建一个非常简单的 GUI 供用户选择构建 block ,只需将它们一个接一个地链接起来
根据Convert Spark DataFrame to Pojo Object的回复我了解到 Dataframe是 Dataset 的别名. 我目前计算了 JavaPairRDD哪里CityStat
我使用的是jackson,场景是: 在客户端 (Android) 中生成对 Web 服务的 URL 调用 Web 服务以 json 形式返回“complex pojo”(具有与其他 pojo 相同的类
我需要将文档存储到 Elasticsearch 索引中,因此我定义了一个映射。我需要从我的 java 客户端向它提供看起来像 Compony 类的 pojo。它有很多重复的值。我可以使用对象组合模式来
所以我正在开发一个聊天应用程序。有一部分我感兴趣的是一次从数据库中检索 3 个实体。有一个 serverDto 实体和 accountDto 实体。每个服务器都有很多账户,账户里有一个字段叫做acti
我有一个 Java 中的 POJO 列表,我需要将其转换为另一种类型的 POJO 列表。两个 POJO 都有两个字符串字段。除了迭代原始列表并将新项目添加到结果列表之外,是否有更好的方法来执行此操作?
我正在开发一个 API 来访问存储在系统中的数据。该系统包含人员、约会和与这些约会相关的程序等内容。我的应用程序将严格为只读。 我正在使用带 RowMapper 的 Spring 来构建对象,例如“P
希望有人能帮助我。我有一个具有以下结构的 POJO: public class Invoice{ private String docNum; private String customer; pri
引用以下链接,我在运行时创建了类,http://blog.javaforge.net/post/31913732423/howto-create-java-pojo-at-runtime-with-j
所以我遇到了这个教程,将 POJO 序列化为 json,然后将 json 文件反序列化回 POJO。 http://www.mkyong.com/java/how-to-convert-java-ob
我是 Java 的新手。我只是对序列化和反序列化感到困惑。所以,我很困惑我应该使用哪一个。 我正在寻找一个回合,发现 Boon、Jackson、GSON(我目前正在使用 GSON,但一些文章使用 Ja
我确信这个问题可能已经被问过几次了,但我不明白我应该使用什么查询。我想要做的是,将 POJO 传递给另一个参数可以是动态的 POJO 像下面的例子 Class DataPOJO{ privat
我有一个有多页的注册表。所以,我将一页映射到一个 pojo。最后,当我处理数据库时,我想将其作为单个 pojo 提交。任何简化此模型的想法。 谢谢:) 最佳答案 您可以创建一个包装器 POJO,它在主
希望有人能帮助我。我有一个具有以下结构的 POJO: public class Invoice{ private String docNum; private String customer; pri
要求: 将 json 文件中选定的字段收集到 POJO 中(字段名称不匹配) 更新 POJO 的其他非映射字段 转换回带有 POJO 字段名的 jsonNode 问题:步骤 1 和 2 没问题。当将
我的 Spring Boot 应用程序中有两个 Pojo Pojo 1:FeedData 代码(我有获取和设置,只是没有在这里显示): package com.cms.tb.model; import
我们有两个 Pojo 文件。 Person { String name; int age; String address; String phoneNo; boolean isMa
我有一个数据库调用,如果没有任何条件匹配,则可能返回 null。如果有记录匹配,则结果是一个包含嵌入对象列表的 Pojo。我想将该 Pojo 转换为其嵌入对象 id 的列表。 Foo.class 有
我正在尝试使用流将 pojo 映射到 pojo 上的属性公开的一组项目。我意识到这还不清楚,所以我将展示我是如何在没有流的情况下完成的。 我有产品类别的枚举,产品的枚举和具有此类产品的商店列表 pub
我们在 Apache2 网络服务器后面的 Tomcat 6 中运行的 AXIS2 v1.5.2 中实现了一个 POJO 网络服务。 出于演示目的,我将重点介绍 validateUser 消息和相应的方
我是一名优秀的程序员,十分优秀!