SoapObject result = (SoapObject) envelope.bodyIn;
//detail = (SoapObject) result.getProperty(METHOD_NAME);
Log.d(LogInfo, result.toString());
打印的result.toString()是getVersion1Response{out=anyType{IPRFolder=anyType{folderName=ipr_txt; folderVersion=1; }; }; }
传过来的List是List<IPRFolder> 里面有两个变量folderName,folderVersion
//如果获取的是个集合,就对它进行下面的操作
if(soapObject.getName()=="anyType")
{
//遍历Web Service获得的集合
for(int i=0;i<soapObject.getPropertyCount();i++){
MFirst m=new MFirst();
//获取单条的数据
SoapObject soapChilds =(SoapObject)soapObject.getProperty(i);
//对单个的数据进行再次遍历,把它的每行数据读取出来
for(int k=0;k<soapChilds.getPropertyCount();k++)
{
PropertyInfo propertyInfo=new PropertyInfo();
soapChilds.getPropertyInfo(k, propertyInfo);
//获取实体类的所有属性
Field[] field = m.getClass().getDeclaredFields();
//遍历所有属性
for(int j=0 ; j<field.length ; j++){
//获取属性的名字
String name = field[j].getName();
//把每个属性的名字跟Web Service返回的k行进行对比
String ppinfoname=propertyInfo.getName().toLowerCase();
if(ppinfoname.equals(name.toLowerCase()))
{
//调用个我也看不懂的方法,给实体类赋值,具体意思也不明白,资料就这样。
GetSetManager.setFieldValue(m,name,field[j].getType(),
soapChilds.getProperty(propertyInfo.getName()).toString());
}
}
}
list.add(m);
}
}
Object fvalue) { //设置字段值 如:username 字段,setUsername(String username)
if (target == null
|| fname == null
|| "".equals(fname)
|| (fvalue != null && !ftype.isAssignableFrom(fvalue.getClass()))) {//如果类型不匹配,直接退出
return;
}
Class clazz = target.getClass();
try { //先通过setXxx()方法设置类属性值
String methodname="set" + Character.toUpperCase(fname.charAt(0)) + fname.substring(1);
System.out.println(methodname);
Method method = clazz.getDeclaredMethod(methodname, ftype); //获取定义的方法
if (!Modifier.isPublic(method.getModifiers())) { //设置非共有方法权限
method.setAccessible(true);
}
method.invoke(target, fvalue); //执行方法回调
} catch (Exception me) {//如果set方法不存在,则直接设置类属性值
try {
Field field = clazz.getDeclaredField(fname); //获取定义的类属性
if (!Modifier.isPublic(field.getModifiers())) { //设置非共有类属性权限
field.setAccessible(true);
}
field.set(target, fvalue); //设置类属性值
} catch (Exception fe) {
}
}
}
out=anyType{IPRFolder=anyType{folderName=ipr_txt; folderVersion=1;
取得一个个PropertyInfo集合中某个对象
通过遍历某个对象属性,相对应的去赋值给java对象,最后得到集合
所有的信息都在一条里了怎么处理?