我使用SOAP based web-service
消费ksoap2
,并从网络服务接收JSON response
,我将其存储在SoapObject
中。
下一步是解析JSON
。为此,我尝试从响应SoapObject中获取每个property
并将其存储在另一个SoapObject
中,以便进一步处理(例如获取name
和value
等)。 / p>
SoapObject soapObjectEach= (SoapObject) postResult.getProperty(i);
但是我在这个语句中得到一个异常: java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive无法强制转换为org.ksoap2.serialization.SoapObject
postResult是一个SoapOject。这表明postResult.getProperty()可能会返回一个SoapPrimitive?但我几乎可以肯定事实并非如此,因为documentation说“返回所需的财产”
答案 0 :(得分:1)
让我们对你的代码进行对角化:
SoapObject soapObjectEach= (SoapObject) postResult.getProperty(i);
正如你所说postResult是一个soapobject。从getproperty的文档中可以看出:
getProperty
public java.lang.Object getProperty(int index)
Returns a specific property at a certain index.
Specified by:
getProperty in interface KvmSerializable
Parameters:
index - the index of the desired property
Returns:
the desired property
getproperty返回索引处的属性,而不是可以始终强制转换为soapobject的东西。从您的异常中我们可以看到它返回了一个soapprimitive类型的对象。所以解决方案类似于this post。