簡體   English   中英

使用xstream將XML映射到POJO

[英]Mapping XML to POJO using xstream

我正在使用XStream將XML映射到相應的POJO。 我的XML結構如下

<myTag>
<TagABC>
   <x> ... </x>
   <y> ... </y>
</TagABC>
    .
    .
    .
<TagABC>
   <x> ... </x>
   <y> ... </y>
</TagABC>
</myTag>

因此有多個TagABC。 我在POJO中將TagABC定義為

private List<TagABCHolder> TagABC;

其中TagABCHolder是另一個POJO,僅包含x,y和它們的getter,setter

現在,當我嘗試使用XStream和以下代碼進行映射時

xstream.alias("TagABC", TagABCHolder.class);

xstream.fromXML(xml); 

無法識別POJO中為TagABC定義的List結構,並在下面拋出錯誤

 ---- Debugging information ----
 message             : x: x
 cause-exception     : com.thoughtworks.xstream.mapper.CannotResolveClassException
 cause-message       : x: x
 class               : com.a.b.c.testing.common.TagABCHolder
 required-type       : java.util.ArrayList
 path                : /myTag/TagABC/x
 line number         : 1

知道我該如何解決嗎?

我找到了解決方案。

這只是批注的技巧。

這是我所做的:

我在POJO(TagABCHolder)中添加了@XStreamImplicit批注

@XStreamImplicit(itemFieldName="TagABC")
private List<TagABCHolder> TagABC;

並剛剛從我映射的代碼中處理了放置在POJO中的注釋

xstream.processAnnotations(TagABCHolder.class);

而已!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM