Android: исключение ArrayIndexOutOfBoundsException при разборе массива JSON

#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;  
        }