自己遇到过的出现java.lang.StackOverflowError的原因
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那么这个就会无限循环下去,就会在栈中不断调用方法,直至栈溢出。
自己遇到过的出现java.lang.StackOverflowError的原因的更多相关文章
- 页面上使用 Thymeleaf 的内联js不当造成了 java.lang.StackOverflowError: null 问题
由于在页面上内联js使用不当,从而在从 Controller 跳转到页面时发生了以下错误: java.lang.StackOverflowError: null at org.thymeleaf.ut ...
- 错误笔记:Caused by: java.lang.StackOverflowError
今天在将一个map转化成json出现堆栈异常,排查原因如下:出现循环递归( rootMap.put("rootMap", rootMap);),栈内存肯定耗光 代码: /** * ...
- Jackson转换对象为json的时候报java.lang.stackoverflowerror
无论在将一个对象转为json字符串的时候采用何种算法,如果你的对象的属性的类型不是基本类型或对应的引用类型,转换应该都不会就此结束,那么有一种方式可以导致这种转换陷入无限循环:将某个对象的属性设为对象 ...
- struts2 java.lang.StackOverflowError org.apache.struts2.json.JSONWriter
1. 问题描述: 页面通过异步访问action, action的方法通过map封装数据,struts的result的type设置为json,后台报错 六月 25, 2016 6:54:33 下午 ...
- java.lang.StackOverflowError: stack size 8MB
java.lang.StackOverflowError: stack size 8MB at android.text.TextUtils.getChars(TextUtils.java:86) a ...
- android布局太深导致的 java.lang.StackOverflowError
E/AndroidRuntime( 1900): java.lang.StackOverflowError E/AndroidRuntime( 1900): at android.graphi ...
- 【转】java.lang.StackOverflowError
http://blog.csdn.net/g19920917/article/details/8765638 出现一个java.lang.StackOverflowError异常.弄了半天,又是问高手 ...
- 异常Exception in thread "AWT-EventQueue-XX" java.lang.StackOverflowError
今天太背了,bug不断,检查到最后都会发现自己脑残了,粗心写错,更悲剧的是写错的时候还不提示错. 刚才有遇到一个问题,抛了这个异常Exception in thread "AWT-Event ...
- org.springframework.web.util.NestedServletException : Handler processing failed; nested exception is java.lang.StackOverflowError
1 ,错误原因,循环冗余检查 result.setNearUsers(userList); Page page = new Page(); pag ...
随机推荐
- 关于k8s安装脚本方面的草稿
周六作的, 慢慢完善. #! /usr/bin/env bash set -e set -u set -x #让此脚本可以重复执行,所以加了一些判断 #使用系统的PATH环境 export PATH= ...
- Caused by: java.net.ConnectException: Connection refused: master/192.168.3.129:7077
1:启动Spark Shell,spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序. 启动Spark Shell, ...
- MVC 添加JS,CSS等版本标签
在cshtml文件标签中添加 asp-append-version="true" <img src="~/images/codedigestlogo.png&quo ...
- vue-app开发入门
vue的中文文档在这里 1. 简单地引用vue.js 使用vue框架最简单的方式就是写一个HTML页面然后引用vue.js啦. 使用<script> 标签就可以将vue.js导入并且使用它 ...
- [转]java位运算(1)
http://blog.csdn.net/xiaochunyong/article/details/7748713 Java提供的位运算符有:左移( << ).右移( >> ) ...
- nginx 日志 cron任务切割日志
#vim cut_nginx_log.sh #cd /usr/local/nginx/logs/ #/bin/mv access.log access_$(date +%F).log #/usr/lo ...
- python全栈开发day53-mysql
mysql的使用 (1)下载 解压到指定的目录. (2)取到C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\bin路径 添加到系统的环境变量中,后面一定要加分号. ...
- ip 命令
Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...
- sql 把一个用逗号分隔的多个数据字符串变成一个表的一列
USE [tms]GO/****** Object: UserDefinedFunction [dbo].[StrToTable] Script Date: 2017/4/26 9:06:20 *** ...
- cookie的基本操作
设置,读取,删除 var odate=new Date(); odate.setDate(odate.getDate()+14); document.cookie='user=blue;expires ...