struts2的json插件返回值是一个json对象,如果用jquery的ajax方法很容易取得,但是在使用别人的控件(未使用jquery)或者不使用jquery来操作数据时,就会遇到问题了。此时我们用原始的ajax方式来获取。如下图,看起来是一个json对象,实际上不是,只是一个字符串而以,因为我们用的是new XMLHttpRequest()。responseText来取值的。所以还必须转化一下,郁闷许久之后在一个哥们的博客上发现了该方法(感谢这位哥们,其实自己看书的时候也注意到了该方法,只是没放在心上,靠,经常出现这种问题),方法如下:
在字符串两端再加上括号然后eval就ok了
var gethttp = function()
{
try{ return new XMLHttpRequest(); }catch(e){}
try{ return new ActiveXObject('Msxml2.XMLHTTP'); }catch(e){}
try{ return new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){}
return null;
};
var oh = gethttp();
var retxt = oh.responseText
retxt=eval('('+retxt+')')//这句最重要,上面可以忽略
换句话说,即使你拼接出符合json格式的字符串,还需要用eval(),才能真正变成json对象