Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ClassCastException:SoapPrimitive can';不能强制转换为SoapObject(显然这里没有SoapPrimitive)_Android_Json_Serialization_Ksoap2_Classcastexception - Fatal编程技术网

Android ClassCastException:SoapPrimitive can';不能强制转换为SoapObject(显然这里没有SoapPrimitive)

Android ClassCastException:SoapPrimitive can';不能强制转换为SoapObject(显然这里没有SoapPrimitive),android,json,serialization,ksoap2,classcastexception,Android,Json,Serialization,Ksoap2,Classcastexception,我使用ksoap2使用SOAP-based web服务,并从web服务接收JSON响应,该响应存储在SoapObject中 下一步是解析JSON。为此,我试图从响应SoapObject中获取每个属性,并将其存储在另一个SoapObject中,以便进一步处理(例如获取名称和值等) 但是我在下面的语句中得到了一个异常:java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive不能强制转换为org.ksoap2.seriali

我使用
ksoap2
使用
SOAP-based web服务
,并从web服务接收
JSON响应
,该响应存储在
SoapObject

下一步是解析
JSON
。为此,我试图从响应SoapObject中获取每个
属性
,并将其存储在另一个
SoapObject
中,以便进一步处理(例如获取
名称
等)

但是我在下面的语句中得到了一个异常:java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive不能强制转换为org.ksoap2.serialization.SoapObject

postResult是一个SOAPObject。这表明postResult.getProperty()可能返回一个SoapPrimitive?但我几乎可以肯定的是,情况并非如此,正如“返回所需的财产”所说


那么有人能提出一些建议吗?我已经看到了关于这个(,)的其他问题,但没有得到满意的答案。

让我们来分析一下您的代码:

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类型的对象。因此,解决方案类似于。

非常感谢。这就解决了问题。但这个答案并没有说明原因和方式。所以你能告诉我你是否知道吗?它的简单的soapprimitive不能转换成soapobject这个链接解释了你需要什么
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