js中如何处理由ajax传回的json? var result = http_request.responseText;var json = eval(result);

传回的是一个list集合 里面对象是javabean
//这是action的处理
List<medsInfoBean> list = service.medsSearch(medsName);
//medsInfoBean 里3个String字段含中文
JSONArray json = JSONArray.fromObject(list);
response.getWriter().print(json);//此时json经观察有数据

//前台用javaScript接收处理
function completeRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var json = eval('(' + http_request.responseText + ')');
/*执行上面一句话时会报语法错误,但是经我测试,上面的方法是没有问题的,难道是因为http_request.responseText 得类型不对?或者是没有值?实在搞不清楚了,请高手指教!*/
} else {// file:页面不正常
alert("您所请求的页面有异常。");
}
}
}
y113700676 你这句也会报语法错误。
sonichu 你的我也测试了 还是不行。语法错误 json.length都为undefined 这个对 受教了 我第一次接触json 呵呵

页面引用jquery-1.3.2.min.js

function Login() {
$.ajax({
//提交方式
type:"POST",
//处理Action
url:"login.action",
//提交参数
data:{userName:$("#username").val(),userPwd:$("#userpwd").val()},
beforeSend:function () {//提交是状态
$("#msg").html("<img src='js/image/loading.gif'/ title='\u6b63\u5728\u767b\u5f55,\u8bf7\u7a0d\u540e...'> Loading...");
},
//返回的数据 必须是json格式:{"abc":"4444","a":"4","b":"5"}
success:function (data) {
//alert(data);
var objJson = eval("(" + data + ")"); //把返回数据转换json对象
//错误处理;
LoginError(objJson.num); //数据处理
}});
}
希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-28
假如传回的是:{"abc":"4444","a":"4","b":"5"}
你可以用var json=JSON.parse( http_request.responseText );
不过json.length都为undefined本回答被网友采纳
第2个回答  2011-03-09
1.你先显示responseText看一下,格式符不符合json的格式。
2.如果格式符合的话,再用typeof 检测一下responseText的数据类型,按道理这个应该都是String类型的。
做完上面两步之后,还是不行的话,再告诉我情况,记得把上面两步显示的结果截图给我。
第3个回答  2011-03-09
var json = eval('(' + http_request.responseText + ')');
前提是,必须是合法的json格式
相似回答