![](/img/trans.png)
[英]Jackson should not ignore root element tag in multi root xml content
[英]Jackson XML with different element name and attributes under root tag
I'm new to Jackson XML and I have a requirement of constructing a Jackson XML with different element name and attributes but under same root element.
我的預期 xml output
<item name="Whatever">
<problem_id id="12312"/>
<problem_type type="1765"/>
<problem_desc desc="faulty"/>
</item>
我的 pojo class (不知道如何添加剩余的元素和屬性)
@JacksonXmlRootElement(localName = "item")
public class ItemsDTO {
@JacksonXmlProperty(localName = "name",isAttribute = true)
private String name="Whatever";
}
任何建議將不勝感激。
為此,您可能需要像已經完成的那樣實現更多類,然后將相關屬性添加到容器 class ItemsDTO
:
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
@JacksonXmlRootElement(localName = "item")
public class ItemsDTO {
@JacksonXmlProperty(isAttribute = true)
private String name = "Whatever";
@JacksonXmlProperty(localName = "problem_id")
private ProblemId problemId = new ProblemId();
@JacksonXmlProperty(localName = "problem_type")
private ProblemType problemType = new ProblemType();
@JacksonXmlProperty(localName = "problem_desc")
private ProblemDesc problemDesc = new ProblemDesc();
}
class ProblemId {
@JacksonXmlProperty(isAttribute = true)
private int id = 12312;
}
class ProblemType {
@JacksonXmlProperty(isAttribute = true)
private int type = 1765;
}
class ProblemDesc {
@JacksonXmlProperty(isAttribute = true)
private String desc = "faulty";
}
雖然最好有一個較短的 XML output ,並將problem
的屬性“封裝”在這樣的單個元素中:
<item name="Whatever">
<problem id="12312" type="1765" desc="faulty"/>
</item>
這可以通過以下代碼實現:
@JacksonXmlRootElement(localName = "item")
public class ItemDTO {
@JacksonXmlProperty(isAttribute = true)
private String name = "Whatever";
@JacksonXmlProperty
private Problem problem = new Problem();
}
class Problem {
@JacksonXmlProperty(isAttribute = true)
private int id = 12312;
@JacksonXmlProperty(isAttribute = true)
private int type = 1765;
@JacksonXmlProperty(isAttribute = true)
private String desc = "faulty";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.