如何通过android中的ksoap SoapObject检索来自webservice的复杂类型对象

时间:2013-09-03 09:36:24

标签: android web-services ksoap2 soap-client android-ksoap2

我有一个web服务返回一个复杂的对象(比如RouteDetails)。当我从我的android代码中调用这个web服务时我已经使用了ksoap库我在soapobject中得到了一个响应但是当我尝试将它转换为我的复杂的对象,它会引发转发异常,而当我在日志上打印时,它会向我显示这样的输出 -

“RuoteDetails {name =”abc“,id =”2“}”

其中RouteDetails是我的对象 现在我完全不知道如何检索我的对象。任何人都可以帮忙。我已经通过各种链接但无法找到合适的解决方案。

1 个答案:

答案 0 :(得分:1)

Ksoap2可以将响应解析为几种类型的对象。

  1. SoapObject - 默认值。您可以使用其方法getPropertygetPropertySafelygetPropertyAsString等来获取数据。即 String value = response.getPropertySafelyAsString("propertyName", "default");
  2. 实现KvmSerializable接口并由addMaping()注册的类。
  3. 实现Marshal接口并由addMaping()注册的类。
  4. 在最后两种情况下,您将从envelope.getResponse()获取对象(在第一种情况下,您将获得SoapObject)。 因此,您可以从SoapObject获取数据或实施KvmSerializableMarshal接口并注册您的课程。