0
好的 - 我知道這應該是非常簡單的 - 但出於某種原因 - 我無法讓它工作!將原始XML字符串轉換爲java對象列表?
可以說我有以下POJO:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class PlainOldJavaObject implements Serializable {
private long uuid;
private String name;
public PlainOldJavaObject() {
}
public long getUuid() {
return this.uuid;
}
public void setUuid(long uuid) {
this.uuid = uuid;
}
public String getNamen() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
/* Omitted HashCode & Equals for brevity. */
}
而且可以說我有下面的XML(我已經格式化它readabilty - 我真的把它作爲原料,格式化字符串):
<PlainOldJavaObjects>
<PlainOldJavaObject>
<uuid>8119</uuid>
<name>Jimmy</name>
</PlainOldJavaObject>
<PlainOldJavaObject>
<uuid>2372</uuid>
<name>Johns</name>
</PlainOldJavaObject>
</PlainOldJavaObjects>
如何在活着的地獄我把那個XML變成一個List實例?
我嘗試使用的XStream - 如下:
XStream xStream = new XStream();
List<PlainOldJavaObject> endResultHopefully = (List<PlainOldJavaObject>) xStream.fromXML(result);
但這一切確實是看似以下內容打印到我的終端...
PlainOldJavaObjects : PlainOldJavaObjects
什麼我到底錯在這裏做什麼?
注意:添加JAXB TAG因爲從谷歌搜索這一點 - 我看到這個存在,我會假設它可能是我想要的 - 但我不知道,也許有人OVER在社會可能,也爲我指點?
使用JAXB。這就是它所做的。 – Rob
我似乎無法找到一個列表使用jaxb的例子,而無需編寫一個包含該列表的包裝類。這不是我能夠爲這個項目帶來變化的東西。 – MickeyThreeSheds
jaxb模型將每個元素(實際上是複雜類型)映射到Java類,這就是爲什麼您的「PlainOldJavaObjects」元素需要一個類。在我看來,使用jaxb的最好方法是將它從XSD驅動出來,並且在編譯時生成所有的pojos(具有所有必要的註釋)。這是更少的代碼來維護和代碼模式很容易習慣。如果您使用XML,Jaxb絕對是您的選擇 - 不確定如何說服那些「功能強大」......祝您好運。 – Rob