[英]XML unmarshalling to java objects
XML 回复
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <Film>
<film_id>1</film_id>
<title>ACADEMY DINOSAUR</title>
<description>xxx</description>
<length>86</length>
<image_id>1</image_id>
- <image>
<image_id>1</image_id>
<name>1.jpg</name>
<size>408307</size>
<type>.jpg</type>
<content>base64 byte</content>
</image>
</Film>
我为电影和图像创建了 pojo 类。
电影.java
public class Film {
private String film_id;
private String title;
private String description;
private String length;
private String image_id;
private Image image;
//setter and getter methods
}
图片.java
public class Image {
private int image_id;
private String name;
private int size;
private String type;
private byte[] content;
//setter and getter methods
}
请帮助我是新手,我应该使用 JAXB。
解决方案:
我已经添加了
@XmlRootElement(name = "film")
public class Film {
private int film_id;
private String title;
private String description;
private int length;
private int image_id;
private Image image;
}
在Image的getter方法上,我添加了@XMLElement(name="image")。
在图像 class 上,我添加了一个注释 @XmlRootElement(name = "image"),它给了我想要的东西。
让您的用例工作所需的唯一事情是在Film
class 上添加@XmlRootElement
注释:
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Film")
public class Film {
private String film_id;
private String title;
private String description;
private String length;
private String image_id;
private Image image;
}
解决方案的另一部分
在Image的getter方法上,我添加了@XMLElement(name="image")。
在图像 class 上,我添加了一个注释 @XmlRootElement(name = "image"),它给了我想要的东西。
map 您的特定用例不需要这些步骤。
尝试将您的 arrays 转换为复制类列表(为我工作)
如我所见 byte[] -> List < Byte>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.