Android: ArrayIndexOutOfBoundsException при разборе массива JSON - PullRequest
0 голосов
/ 09 октября 2011

Простите за то, что я новичок в Android и новичок в Java. Я пытаюсь создать динамическое представление списка, используя данные с сервера MySQL. Однако иногда запрос возвращает только один результат. Когда мой класс адаптера анализирует JSONArray с одним элементом в массиве String, я получаю ArrayIndexOutOfBoundsException. Как избежать использования пустой строки в моем resultArray для компенсации исключения? Я не хочу использовать пустую строку, потому что она по-прежнему будет выбираться в просмотре списка.

Код разбора:

    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 Ответ

0 голосов
/ 09 октября 2011
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;  
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...