关于jQuery的$.getJSON()方法返回值问题

 

最近在使用jQuery的ajax方法来获取数据,但是测试过程中发现一个问题,找了很长时间才确定原因,在服务器端我们使用的struts2-json-plugin-2.1.8插件以及json-lib-2.3-jdk15库,将数据转换为json字符串返回给浏览器。

 

服务器端struts2的结果类型如下配置:

<result name="success" type="json">
	<param name="root">jsonData</param>
</result>
 其中type="json"  这个是struts2-json-plugin-2.1.8插件中定义结果类型,用以将action中的字符串当做json串返回给浏览器。这个之前测试过,没有问题。

jsp页面代码如下:
$.getJSON(url,{teacherId:empId},function(json){
	json = eval("("+json+")");
	if( json != null && json.result == "success" ){
		alert("成功!");
	}
});
 上面的代码是正确的,但是如果我把
json = eval("("+json+")");
注释掉,那么程序将出错,说json.result未定义。

$.getJSON()这个方法的返回值就是json对象,但是我们访问json中的值却告诉我未定义,如果把注释去掉,
也即将返回结果就行转换一下,就可以了。

如果我使用$.ajax()这个方法,并且将dataType定义为json,这样是正确的。

不知道有没有人遇到这种情况,还希望解答一下!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值