xStream Дублирование данных при извлечении из списка

Я делаю тестовую программу для записи в xml. У меня 3 класса: Человек, Телефон и Город.

А в классе Person у меня есть такие объекты, как факс, сотовый телефон типа телефона. И объекты Города тоже.

У меня есть 4-й класс с именем Persons ... это класс, у которого есть список типа Person.

private List<Person> persons = new ArrayList<Person>();

В основном классе я устанавливаю атрибуты и добавляю в список объект Person. но когда я делаю следующую строку:

String xml = xstream.toXml(persons);

XML кажется дублированным ... вот так:

<persons>
   <persons>
      <person>
         ...
      </person>
   </persons>
</persons>

Он добавляет объект Person в объект Person, но добавляет во второй объект Person.

Необходимый XML:

<persons>
   <person>
       ...
   </person>
</persons>

Кто-нибудь может мне помочь?

И извините за плохой английский. Я бразилец.


person Andrey Luiz    schedule 30.05.2011    source источник
comment
Не могли бы вы попробовать тот же код в классе String вместо Persons и посмотреть, повторяется ли он? Если да, сообщите нам SSCCE, который представляет проблему. Похоже, что в вашем коде что-то еще не так. Некоторое время назад я лично использовал xstreams в аналогичном контексте, и это было нормально.   -  person Boro    schedule 30.05.2011


Ответы (1)


Пожалуйста, приведите нам самодостаточный пример. Я предполагаю, что вам может потребоваться указать XStream, чтобы поле «person» (с типом List) было «неявным». Вы можете сделать это, используя вызовы методов Java или аннотации. См. addImplicitCollection () (например) и XStream Аннотации Учебник.

person Jim Ferrans    schedule 30.05.2011