2010-12-14 4 views
1

Я хочу преобразовать ниже XML в объекты. ЯПреобразователь массива XSTREAM

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

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

Просьба указать, как я могу разобрать это на моем объектном графе.

ответ

2

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

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

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

+0

я не полностью понимая ваш ответ. Можете ли вы дать более подробную информацию, как Джигар Джоши? Каков контекст использования .addImplicitCollection? – djangofan

2

Для

<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); 
+0

может показать быть объект вместо строки? –

+0

@Jinesh это может быть, но из XML, который вы указали, нет необходимости принимать его как Object, String сделает это за вас –

+0

Это не сработало. псевдоним, который я настраиваю, - это xstream.aliasField («show», Show.class, «show»); –

Смежные вопросы