При синтаксическом анализе данных SoapObject в String [] пустые поля в ответе от веб-службы не добавляются к нему, и я не могу определить пустые свойства путем проверки на ноль или "".
Итак, моя проблема в основном: SoapObject содержит правильное количество свойств, но анализируемый результат (String []) не содержит те, которые пусты, и я не могу проверить пустые свойства и добавить "" в строку [].
Это вызывает проблемы при сохранении в БД SQLite, так как каждый, например, «Пользователь» содержит различное количество полей.
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;
}
Это действительно вызывает у меня головную боль, и я благодарен за любую помощь, которую я могу получить:)