2012-01-11 140 views
3

我遇到了XStream問題。我有一個名爲simplePerson一個Java類,如下所示:Xstream列表 - 重複字段

public class SimplePerson { 

@XStreamAlias("name") 
private String name; 


private List<String> cars; 

我使用它,將其轉換使用到JSON:

XStream xstream = new XStream(new JettisonMappedXmlDriver(){ 
     public HierarchicalStreamWriter createWriter(Writer writer) { 
      return new JsonWriter(writer); 
     } 
    }); 

xstream.setMode(XStream.NO_REFERENCES); 

xstream.toXML(person) 

使用它,我得到下面的JSON: { 「simpleperson」:{ 「名」:「喬」, 「汽車」:「捷豹」,「寶馬」]}}

當我使用相同的JSON將其轉換回使用xstream.fromXML(JSON)的對象,我收到以下例外情況:

異常線程 「main」 com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ DuplicateFieldException:重複場汽車

我無法弄清楚是什麼問題。我使用Xstream給出的相同的確切json作爲輸出。 任何幫助將不勝感激。

回答

5

我想你需要添加隱式集合。喜歡。

xstream.addImplicitCollection(SimplePerson.class, "cars"); 
+0

僅供參考,我有完全相同的問題,這種解決方案爲我工作。 – drt 2013-06-26 17:15:27

+2

編輯:另一個更新,爲Xstream 1.2.2我必須這樣做:xstream.addImplicitCollection(SimplePerson.class,「cars」,String.class); – drt 2013-06-26 17:22:07