как получить объект сложного типа, поступающий из веб-службы через ksoap SoapObject в Android

У меня есть веб-сервис, который возвращает сложный объект (скажем, RouteDetails). Когда я вызываю этот веб-сервис из своего кода Android, в котором я использовал библиотеку ksoap, я получаю ответ в soapobject, но когда я пытаюсь передать его моему сложному объекту, он выдает исключение classcast, в то время как когда я печатаю его в журнале, он показывает мне такой вывод:

" RuoteDetails{name="abc",id="2"} "

где RouteDetails - мой объект Теперь я совершенно не знаю, как получить свой объект. Может ли кто-нибудь помочь. Я прошел через различные ссылки, но не смог найти подходящего решения.


person Ritika Srivastava Misra    schedule 03.09.2013    source источник


Ответы (1)


Ksoap2 может разбирать ответ на несколько типов объектов.

  1. SoapObject - по умолчанию. Вы можете использовать его методы getProperty, getPropertySafely, getPropertyAsString и так далее для получения данных. то есть String value = response.getPropertySafelyAsString("propertyName", "default");
  2. Класс, реализующий интерфейс KvmSerializable и зарегистрированный addMaping().
  3. Класс, который реализует интерфейс Marshal и зарегистрирован addMaping().

В последних двух случаях вы получите свой объект от envelope.getResponse() (в первом случае вы получите SoapObject). Таким образом, вы можете получить свои данные из SoapObject или реализовать интерфейсы KvmSerializable или Marshal и зарегистрировать свой класс.

person esentsov    schedule 03.09.2013
comment
Спасибо за ответ, теперь я получаю эту новую проблему. У меня есть объект, который содержит список двойных .... но в ответ я не знаю, почему я получаю двойное {infinite = false; naN=ложь; }; как ответ ksoap. Есть ли у вас какие-либо идеи?? Пожалуйста помоги - person Ritika Srivastava Misra; 05.09.2013