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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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); //数据处理
);

希望对你有帮助
参考技术A 假如传回的是:"abc":"4444","a":"4","b":"5"
你可以用var json=JSON.parse( http_request.responseText );
不过json.length都为undefined
参考技术B 1.你先显示responseText看一下,格式符不符合json的格式。
2.如果格式符合的话,再用typeof 检测一下responseText的数据类型,按道理这个应该都是String类型的。
做完上面两步之后,还是不行的话,再告诉我情况,记得把上面两步显示的结果截图给我。
参考技术C var json = eval('(' + http_request.responseText + ')');
前提是,必须是合法的json格式

ajax中如何把传递过来的json数据循环遍历出

先把传递过来的字符串转换成对象,再按照一般思路遍历就可以了。

var jsonObj = eval("("+xmlHttp.responseText+")");//转换为对象
for(var i=0;i<jsonObj.length;i++)...

对象里面有啥属性,按照后台的操作正常取出来就可以了。假如对象jsonObj 
里面含有后台的Person对象(并且含有属性:private String name;),遍历的时候获取name的话,可以 

for(var i=0;i<jsonObj.length;i++)
    var personName = jsonObj[i].name;

稍微提示下,希望有所助!

参考技术A 遍历json就用 for in,如果子属性是对象,继续遍历

以上是关于js中如何处理由ajax传回的json? var result = http_request.responseText;var json = eval(result);的主要内容,如果未能解决你的问题,请参考以下文章

从 html 中获取数据并<对其进行一些操作> 并使用 ajax 或 js 将数据传回前端

angular js 多处获取ajax数据的方法

ajax前台提交数据,Json数据在java后台怎么取出来

使用js获取复选框的值,并把数组传回后台处理,过程使用的是Ajax异步查询

用JQuery实现ajax删除数据

后台传回的Json数据怎么在HTML表单中显示并能动态编辑(添加、删除)