2012-01-11 5 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라는 자바 클래스가 { "이름": "조", "자동차": [ "재규어", "BMW"]}}

내가 xstream.fromXML (JSON)를 사용하여 오브젝트로 변환하기 위해 동일한 JSON을 사용하는 경우, 다음 예외가 발생합니다.

스레드 "주요"com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ DuplicateFieldException에서

예외 : 중복 필드 자동차

나는 문제가 무엇인지 파악하지 못할. 저는 Xstream이 출력 한 것과 똑같은 json을 사용하고 있습니다. 도움이 될 것입니다.

답변

5

암시 적 컬렉션을 추가해야합니다. 처럼.

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

참고로 정확히 동일한 문제가 있었으며이 솔루션은 저에게 효과적이었습니다. – drt

+2

편집 : Xstream 1.2.2에 대한 업데이트가 추가되었습니다. xstream.addImplicitCollection (SimplePerson.class, "cars", String.class); – drt