У меня проблема с XStream. У меня есть класс Java под названием simplePerson следующим образом:Xstream List - Повторяющееся поле
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), Я получаю следующее исключение:
Исключение в потоке "основного" com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter $ DuplicateFieldException: Дублирование поля автомобилей
Я не могу понять, в чем проблема. Я использую тот же самый точный json, который Xstream дал в качестве вывода. Любая помощь будет оценена по достоинству.
FYI, у меня была такая же проблема, и это решение сработало для меня. – drt
edit: Еще одно обновление для Xstream 1.2.2 Мне пришлось сделать это: xstream.addImplicitCollection (SimplePerson.class, "cars", String.class); – drt