当将SoapObject数据解析为String []时,来自webservice的响应中的空字段不会被添加到它中,我无法通过检查null或“”来识别空的属性。
所以我的问题基本上是:SoapObject包含适量的属性,但解析后的结果(String [])不包含空的属性,也无法检查空属性并在字符串中添加“” []。
这样在保存到SQLite DB时会给我带来问题,因为每个例如“用户”包含不同数量的字段。
public static String[] getStringArrayResponse(SoapObject node, Vector<String> strings) {
boolean isFirstCall = false;
if (strings == null) {
isFirstCall = true;
strings = new Vector<String>();
}
int count = node.getPropertyCount();
for (int i = 0; i < count; i++) {
Object obj1 = node.getProperty(i);
if (obj1 instanceof SoapObject) {
if (((SoapObject)obj1).getPropertyCount() > 0) {
// Returns the correct amount of properties
Log.d("PARSER", "propertycount = " +((SoapObject)obj1).getPropertyCount());
getStringArrayResponse((SoapObject)obj1, strings);
}
} else if (obj1 instanceof SoapPrimitive) {
strings.add(((SoapPrimitive)obj1).toString());
}
}
if (isFirstCall) {
return (String[])strings.toArray(new String[strings.size()]);
}
return null;
}
这真让我头痛,我很感激能得到的任何帮助:)
答案 0 :(得分:2)
我需要检查“AnyType {}”:)
if (obj1.toString().equals("anyType{}")){
strings.add("");
}
刚刚将这段代码添加到else if下面。