2012-01-11 7 views
3

XStreamに問題があります。Xstreamリスト - 重複フィールド

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に変換するためにそれを使用しています

public class SimplePerson { 

@XStreamAlias("name") 
private String name; 


private List<String> cars; 

次のように私はsimplePersonと呼ばれるJavaクラスを持っています{ "名前": "ジョー"、 "車": "ぎざぎざ"、 "BMW"]}}

Iバックxstream.fromXML(JSON)を使用してオブジェクトに変換するために、同じJSONを使用し、次の例外が発生します。

スレッド "メイン" com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ DuplicateFieldExceptionで

例外:重複するフィールド車

私が問題であるかを把握傾けます。私はXstreamが出力として与えたのと同じ正確なjsonを使用しています。 助けていただければ幸いです。

答えて

5

私は暗黙のコレクションを追加する必要があると思います。好き。

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

FYI、私はまったく同じ問題を抱えていましたが、この解決策は私のために働いていました。 – drt

+2

編集:Xstream 1.2.2のもう1つのアップデート、私はこれを行う必要がありました:xstream.addImplicitCollection(SimplePerson.class、 "cars"、String.class); – drt

関連する問題