2

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

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

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

4

1 回答 1

1

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

  1. SoapObject- 默认的。您可以使用它的方法getPropertygetPropertySafelygetPropertyAsString来获取数据。IE String value = response.getPropertySafelyAsString("propertyName", "default");
  2. 实现KvmSerializable接口并由addMaping()注册的类。
  3. 实现Marshal接口并由addMaping()注册的类。

在最后两种情况下,您将获得您的对象envelope.getResponse()(在第一种情况下,您将获得 SoapObject)。因此,您可以从SoapObject或实现KvmSerializableMarshal接口获取数据并注册您的类。

于 2013-09-03T10:47:58.263 回答