action 中如何获取 ajax 中传来的json,ajax接收action传过来的json数据

先把需要的包加进来,在上篇里

下面是实现代码,先记录下

try{

Map map = new HashMap();

map.put("name","jj");

map.put("age","22");

JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据

this.user = json.toString();//给user赋值,传递给页面

}catch(Exception e){

e.printStackTrace();

}

return SUCCESS;

if(xmlhttp.readyState==4&&xmlhttp.status==200)

{

alert("完成请求:"+xmlhttp.responseText);

var text = xmlhttp.responseText ;

var jsonObj = eval("("+xmlhttp.responseText+")"); //第一次解析得到user对象

// alert("jsonObj[0] "+jsonObj[0]);

alert("jsonObj.user "+jsonObj.user);

//alert("jsonObj.user.age "+jsonObj.user.age); //这样不能访问到,为什么

//alert("jsonObj.length "+jsonObj.length);

alert("jsonObj.user.length "+jsonObj.user.length);

alert("jsonObj.user[0] "+jsonObj.user[0]);

alert("jsonObj.user[1] "+jsonObj.user[1]);

alert("jsonObj.user[2] "+jsonObj.user[2]);

alert("jsonObj.user[3] "+jsonObj.user[3]);

var user = eval("("+jsonObj.user+")"); //再一次解析,得到user对象的json数据

alert("user "+user);

alert("user.name "+user.name); //这样能访问到了 ,真是奇怪

alert("user.age "+user.age);

}

这里不知道为什么传过来的json数据要经过两次 eval( ) 解析才可以读出来,弄了一下午,网上都 是jquery的实现,感觉用这个的很少,几乎没有,

这里我传了个json字符串给ajax,然后解析出来,可以得到user对象,即 jsonObj.user

但是奇怪的是 jsonObj.user.name 或者jsonObj.user.age是没有定义的空值,

后面调试过程中(可以通过输出 jsonObj.user[0],jsonObj.user[1] ,等发现 jsonObj.user 是一个字符串对象,而不是json数据对象 )发现 jsonObj.user 是一个字符串,并不是json数据 ,这是为什么呢??? 后面对jsonObj.user进行eval() 操作后,就可以按json数据格式访问了 !尼玛??为什么??

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值