请教各位一个问题,用ajax提交到后台方法,返回一个json数组,在前台怎么去将这个json数据读取出来放在table里面。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先要把接受到的json格式字符串 转化为json对象。那你可以这样:
①如果用jquery的ajax,只需要指定接受字符串的dateType为 json,这时候的实参data就已经是js对象了。
②如果不用jquery的ajax,直接执行eval(如三楼采用的: var jsonObj = eval(jsonStr);eval 本身的作用就是执行字符串 )。
③还有就是parseJSON();和parse()这俩方法了(貌似需要浏览器支持,或者引入JSON2.js)。
得到了 对象一切就好说了。如果是数组格式(比如后端的json是根据ArrayList序列化来的)可以像操做数组一样直接根据index取得相应数据。如果是键值对(后端是map序列化成的标准json格式{'key1':value1;'key2':value2;...}) 那就直接key.value就能取得相应数据了。
######受用了 。谢谢!######后台语言是php么?我的是php,一份样码:
后台用 echo json_encode("xx");返回json数据,下面的success:function(data)中的data就是json数据,然后就eval(data)赋给一个变量,然后当这个变量像数组一样使用,我也不知道为什么用eval,之前百度人家是这么写的,大概就是将json数据转换成数组吧,我是半桶水。然后可以用jquery的append或者html方法添加到你想添加的地方。
$.ajax({
type:"GET",
url:"../act/zoneAction.php?action=find_nextpage_comment&page="+page+"&picid="+picid,
dataType:"json",
success:function(data){
var html = '';
var result = eval(data);
var length = result.length>2?2:result.length;
for(var i = 0;i<length;i++)
{
html+="<div class=\"guest_comment\"><div class=\"guest_cover\"><img src=\""+result[i]['user']['Cover']+"\"></div><div class=\"guest_comment_content\"><p>"+result[i]['Content']+"</p></div><div style=\"clear:both;\"></div></div><hr style=\"color:#ffffff;width:100%;clear:both;\">";
}
$("#change_comment").html(html);
}
});
######谢谢了!很受用######jquery######
function makeEducPlanTable(){
var data = eval('(' + responseText + ')');
var tab = $("#educPlanContent");
var html = [];
if(data.length > 0){
var trBgColor = '#FFFFFF';
for(var i=0;i<data.length;i++){
if(i%2 == 0){
trBgColor = "#FFFFFF";
}else{
trBgColor = '#F5FAFA';
}
var plan = data[i];
html.push("<tr align='center' valign='middle' bordercolor='#0000FF' bgcolor='"+ trBgColor +"' id='childPlan'"+ plan.childNo +">");
html.push("<td><input type='checkbox' value='"+ plan.childNo +"' name='childPlan'/></td>");
html.push("<td>"+ plan.num +"</td>");
html.push("<td>"+ plan.age +"</td>");
html.push("<td>"+ plan.startEduAge +"</td>");
html.push("<td>"+ plan.sEduStage +"</td>");
html.push("<td>"+ plan.eEduStage +"</td>");
html.push("</tr>");
}
}
tab.html("");
tab.append(html.join(""));
}######回复
@笑医久久 :######回复
@易万军 : 普通的JavaScript######能否告知这是什么技术啊?######多讲一句,1楼贴的代码第七行的
eval(data);是多余的。######哦哦,谢谢啊:)