Конвертер массива XSTREAM - PullRequest
2 голосов
/ 14 декабря 2010

Я хочу преобразовать ниже XML в объекты.I

<authentication>
    <name>Reese Rideout</name>
    <shows type="array">
        <show>stage</show>
        <show>youtube</show>
    </shows>
</authentication>

У меня есть класс аутентификации со списком List .Я считаю, что мне нужно будет использовать преобразователь массива.Однако я не понимаю, как его использовать и не нахожу никаких документов.

Пожалуйста, предложите, как я могу разобрать это в моем графе объектов.

Ответы [ 2 ]

3 голосов
/ 14 декабря 2010

Вот как я это исправил:

xstream.alias("shows", Shows.class);
xstream.alias("show", String.class);

А также установите поле Shows.shows как неявную коллекцию: xstream.addImplicitCollection(Shows.class, "shows");

2 голосов
/ 14 декабря 2010

Для

 <authentication>
      <name>Reese Rideout</name>
      <shows type="array">
         <show>stage</show>
         <show>youtube</show>
       </shows>
    </authenticatoin>

вы можете иметь

class Authentication{
String name;
List<Show> shows;
}

class Show{
List<String> show;
}

Вам придется использовать aliasing

xstream.alias("authentication", Authentication.class);
xstream.alias("Show", Show.class);
...