[英]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.