java - 解码 JAVA Web 服务中的嵌套或复杂数据元素

标签 java xml web-services arraylist jaxb

我们正在开发 JAVA Web 服务,并已为 Web 服务提供输入。输入包含数据元素,最后一个元素是一个包含四个项目的 Arraylist。我们能够获取不在 arraylist 中的第一组元素的值,然后将它们保存或存储在数据库中。我们面临的挑战是获取 arraylist 中嵌套元素的值。

我们正在使用以下代码,但它提示或给出错误消息,指出它无法看到 (DataInfo.xml) XML 文件。我们认为这是由网络服务输入生成的,但我们看不到它。

JAXBContext jaxbContext = JAXBContext.newInstance(DataInfo.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();          
DataInfo  EXitems = (DataInfo) jaxbUnmarshaller.unmarshal(new File("DataInfo.xml") );

我们如何确保代码(应用程序)可以看到 XML,或者从 arraylist 或嵌套元素获取值的最佳方式是什么?

我们正在使用相同的代码

主类

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DataInfo", propOrder = {"firstName","surname", "dateofBirth","studentAddress"})
@XmlRootElement(name = "dataInfo")                                          
public class DataInfo  implements Serializable {

}

ArrayList类

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "studentAddress", propOrder = {"address1","address2", "town","country"})
@XmlRootElement(name = "studentAddress")                                            
public class studentAddress  implements Serializable {

}

我删除了 getter 和 setter,以缩短发布时的代码

请帮忙

最佳答案

这样的事情对我有用,

@XmlElementWrapper(name = "ProfileList")
@XmlElement(name = "Profile")
private List<Profile> listOfProfiles;

对于像这样的 XML 结构,

....
<ProfileList>
    <Profile>......</Profile>
    <Profile>......</Profile>
</ProfileList>
....

关于java - 解码 JAVA Web 服务中的嵌套或复杂数据元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764083/

相关文章:

xml - XPath Select OR 多个字符串

java - 如何创建具有动态端点的 CXF web 服务客户端?

java - 从哪里开始学习 Java EE 或用 Java 制作 Web 服务

java - 由于在 @Transactional 方法中使用带有 Hibernate、Spring 和 CrudRepository 接口(interface)的 JPA 关闭 session 导致延迟加载异常

java - 在 Java 中神奇地调用方法

javascript - 在 xml 中搜索属性

php - 编写 PHP Web 服务的框架

java - 使用 JTable 选择表中的所有行

java - 如何比较具有 500,000k 行的单列两个 Excel 文件

xml - 基于属性值创建父子元素并抑制输出中的重复元素