public static JSONArray geth24Weather(String result) {//获取当天24小时以及第二天的天气结果对象
JSONObject fromObject = null; JSONArray h24weatherArray =null; try { int indexOf = result.indexOf("{"); int lastIndexOf = result.lastIndexOf("}"); result=result.substring(indexOf, lastIndexOf+1); String replaceAll = result.replaceAll(" ", ""); if(replaceAll.trim().startsWith("{")){ fromObject = JSONObject.fromObject(result); } //System.out.println("fromObject"+fromObject); } catch (Exception e) { e.printStackTrace(); } if(fromObject!=null&&fromObject.get("code").equals("0")){ JSONArray jsonArray = fromObject.getJSONArray("data");//获取天气数据对象 JSONArray forecastArray= ((JSONObject)jsonArray.get(0)).getJSONArray("forecast");//获取预报天气对象 JSONObject todayObj= (JSONObject)forecastArray.get(0);//获取到当天对象 if(todayObj.containsKey("h24weather")&&todayObj.get("h24weather")!=null){ System.out.println("打印todayObj="+todayObj); h24weatherArray=todayObj.optJSONArray("h24weather"); if(h24weatherArray==null){ geth24Weather(result); } System.out.println("打印h24weatherArray="+h24weatherArray); }else{ System.out.println("空"); } } return h24weatherArray; }这个就是递归没有结束条件,一旦遇到result是null那么这个就会无限循环下去,就会在栈中不断调用方法,直至栈溢出。