小弟我在Servlet返回的json,在jsp的js代码中解析不了
我在Servlet返回的json,在jsp的js代码中解析不了
Servlet端
jsp端
谷歌浏览器显示红色那串出错
------解决方案--------------------
JSON.parse(str);这个函数解析标准格式的json字符串。
out.println(jsonObj.toString());你的后台只println,并没有flush和close,应该没有写回,所以你页面获取的应该是一个null。
------解决方案--------------------
楼上说的对啊,你要这样写:response.getWriter().write(json_str); AJAX的相应才能接收到。
还有你在servlet里面打印一下你的JSON字符串,放到JSON解析工具中看一下格式是否标准。
------解决方案--------------------
这个错误就是告诉你,返回的json字符串不规则,看看这个字符串是什么内容。
------解决方案--------------------
换一个JSON解析方法,就用eval函数吧,这样写:var json_obj = eval ("(" + json_str + ")");
Servlet端
JSONObject jsonObj=new JSONObject();
jsonObj.accumulate("counts", counts);
jsonObj.accumulate("labels", labels);
out.println(jsonObj.toString());
jsp端
<script type="text/javascript">
$(document).ready(function() {
var url = "/ccinfo/tjServlet?tjtype=tj1";
$.ajax( {
type : "POST",
url : url,
data : null,
dataType : "json",//此处要设置成jason
complete : callback
});//回调函数
})
function callback(jasonObj) {
//alert(typeof(jasonObj));
var str = jasonObj;
var obj = JSON.parse(str);//调用Json2.js中提供的JSON解析器来解析成JSONObject
alert(obj.counts);
}
</script>
谷歌浏览器显示红色那串出错
------解决方案--------------------
JSON.parse(str);这个函数解析标准格式的json字符串。
out.println(jsonObj.toString());你的后台只println,并没有flush和close,应该没有写回,所以你页面获取的应该是一个null。
------解决方案--------------------
楼上说的对啊,你要这样写:response.getWriter().write(json_str); AJAX的相应才能接收到。
还有你在servlet里面打印一下你的JSON字符串,放到JSON解析工具中看一下格式是否标准。
------解决方案--------------------
这个错误就是告诉你,返回的json字符串不规则,看看这个字符串是什么内容。
------解决方案--------------------
换一个JSON解析方法,就用eval函数吧,这样写:var json_obj = eval ("(" + json_str + ")");