Android:解析JSON数组时出现ArrayIndexOutOfBoundsException

时间:2011-10-09 06:34:24

标签: java android arrays json exception

原谅我是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 :(得分:0)

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