#java #android #arrays #json #exception
#java #Android #массивы #json #исключение
Вопрос:
Простите, я новичок в Android и новичок в Java. Я пытаюсь создать динамическое представление списка, используя данные с сервера MySQL. Однако иногда запрос возвращает только один результат. Когда мой класс адаптера преобразует JSONArray с одним элементом в строковый массив, я получаю исключение ArrayIndexOutOfBoundsException. Как мне избежать использования пустой строки в моем результирующем массиве для компенсации исключения? Я не хочу использовать пустую строку, потому что она все равно будет выбираться в listview.
Синтаксический анализ кода:
try
{
jArray = new JSONArray(result);
// Taking a peek at the contents
Log.e("log_tag", jArray.getJSONObject(0).getString(queryID));
//For some reason if I don't do this
// I get ArrayIndexOutOfBoundsException.
if (jArray.length() == 1)
{
resultArray = new String[2];
resultArray[1] = "";
}
else
resultArray = new String[jArray.length()];
for(int i = 0; i < jArray.length(); i )
{
resultArray[i] = jArray.getJSONObject(i).getString(queryID);
}
}
catch(JSONException e)
{
throw new NullResultFromServerException("No results from server.");
}
Комментарии:
1. Пожалуйста, добавьте трассировку стека и укажите, где именно вы получаете ошибку.
Ответ №1:
for(int i = 0; i < jArray.length(); i )
{
String empty= jArray.getJSONObject(i).getString(queryID);
empty=empty.trim(); //this will remove the blank white space
if(!empty.equalsIgnoreCase(""))
resultArray[i] = empty;
}