Преобразование XML в объект xstream (Android)

Мне нужна помощь с преобразованием xml в объект через XStream, вот мой XML

<main>
      <listDTO>
          <MyObject>
              <test>value1</test>
          </MyObject>
          <MyObject>
              <test>value2</test>
          </MyObject>

      </listDTO>
</main>

вот мои занятия.

public class First{
      MyObject[] listDTO;
}

public class MyObject{
      String test;
}

С xstream:

...
XStream xStream = new XStream();
xStream.alias("main",First.class);
xStream.alias("listDTO", MyObject.class);
xStream.addImplicitCollection(First.class,"listDTO");

....

Тег <listDTO> является проблемой, и я не могу изменить XML. Классы были сгенерированы из wsdl с помощью Eclipse.

Вы можете помочь мне ?


person Jose.n92    schedule 25.09.2015    source источник


Ответы (1)


Ваш код должен выглядеть так:

XStream xStream = new XStream();
xStream.alias("main", First.class);
xStream.alias("MyObject", MyObject.class);

Во-первых, у вас не неявная коллекция, а явная, отмеченная тегом listDTO. С неявной коллекцией ваш XML будет:

<main>
    <MyObject>
        <test>value1</test>
    </MyObject>
    <MyObject>
        <test>value2</test>
    </MyObject>
</main>

И вторая ошибка, которую вы допустили, заключалась в добавлении псевдонима listDTO для класса MyObject. Его следует заменить псевдонимом MyObject, поскольку в вашем XML определен тег MyObject, соответствующий классу MyObject.

person Dalija Prasnikar    schedule 26.09.2015