Конвертиране на XML в Object 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 псевдоним, тъй като имате MyObject таг, дефиниран във вашия XML, който съответства на MyObject клас.

person Dalija Prasnikar    schedule 26.09.2015