我有一个返回复杂对象(比如 RouteDetails)的网络服务。当我从我使用 ksoap 库的 android 代码调用这个网络服务时,我在 soapobject 中得到响应,但是当我尝试将它转换为我的复杂对象抛出类转换异常,而当我在日志上打印它时,它显示如下输出 -
"RuoteDetails{name="abc",id="2"} "
RouteDetails 是我的对象 现在我完全不知道如何检索我的对象。任何人都可以帮忙。我浏览了各种链接,但找不到合适的解决方案。
最佳答案
Ksoap2 可以将响应解析为多种类型的对象。
SoapObject
- 默认值。您可以使用它的方法getProperty
、getPropertySafely
、getPropertyAsString
等来获取数据。 IEString value = response.getPropertySafelyAsString("propertyName", "default");
- 实现
KvmSerializable
接口(interface)并由addMaping() 注册的类. - 实现Marshal的类接口(interface)并由addMaping()注册.
在最后两种情况下,您将从 envelope.getResponse()
获取对象(在第一种情况下,您将获取 SoapObject)。
因此,您可以从 SoapObject
获取数据或实现 KvmSerializable
或 Marshal
接口(interface)并注册您的类。
关于android - 如何通过android中的ksoap SoapObject检索来自webservice的复杂类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588833/