Android java.lang.ClassCastException:org.ksoap2.serialization.SoapObject

Android java.lang.ClassCastException:org.ksoap2.serialization.SoapObject,android,web-services,casting,ksoap2,Android,Web Services,Casting,Ksoap2,我使用库ksoap2从android应用程序访问Web服务 我试图从Web服务获取arraylist,数据正常,请参见注释 以下代码部分: java.util.Vector<SoapObject> rs = (java.util.Vector<SoapObject>) envelope.getResponse(); if (rs != null) { for (SoapObject cs : rs)

我使用库
ksoap2
从android应用程序访问Web服务

我试图从Web服务获取arraylist,数据正常,请参见注释

以下代码部分:

        java.util.Vector<SoapObject> rs = (java.util.Vector<SoapObject>) envelope.getResponse();
        if (rs != null)
        {
            for (SoapObject cs : rs)
            {
                Floor floor = new Floor();


                floor.id =  Integer.parseInt(cs.getProperty(0).toString()); // ok
                floor.building =  (Building) cs.getProperty(1); //exception
                floor.name =  cs.getProperty(2).toString(); // ok                   
                Log.d("WS", "floorId = "+floor.id+" building = "+floor.building+" floorName = "+floor.name);
            }
        }

谢谢。

您可能在示例的第一句话中得到了CCE。确保(使用调试器)正在发生的事情是这样的,并且程序中的SoapObject与列表中的SoapObject兼容;我用下面的解决方案修复它。
地板=新地板();floor.id=Integer.parseInt(cs.getProperty(0.toString());楼层建筑=新建筑();SoapObject soapBuilding=(SoapObject)cs.getProperty(1);floor.building.id=Integer.parseInt(soapBuilding.getProperty(0.toString());floor.building.name=soapBuilding.getProperty(1.toString();floor.name=cs.getProperty(2.toString();Log.d(“WS”,“Floor=“+Floor”)它可以工作,但很费力/
public class Building implements KvmSerializable { ... }