jquery 回调方法中如何解析JSON集合数据?
[{"stuList":[{"age":11,"id":1,"name":"w11"},{"age":22,"id":2,"name":"w22"},{"age":33,...
[{"stuList":[{"age":11,"id":1,"name":"w11"},{"age":22,"id":2,"name":"w22"},{"age":33,"id":3,"name":"w33"}]}]
请问这样的集合数据怎么解析?前面带个stuList名字 展开
请问这样的集合数据怎么解析?前面带个stuList名字 展开
4个回答
展开全部
这个简单,假如JSON集合数据为data:
var stuListData = data[0].stuList; //获取stuList
for(var i=0;i<stuListData.length;i++){ //循环遍历stuList
alert("age="+stuListData[i].age+" id="+stuListData[i].id+" name="+stuListData[i].name);
}
var stuListData = data[0].stuList; //获取stuList
for(var i=0;i<stuListData.length;i++){ //循环遍历stuList
alert("age="+stuListData[i].age+" id="+stuListData[i].id+" name="+stuListData[i].name);
}
追问
嗯,后来我想了下这样可以,但是有个问题,假如你做分页功能,需要同时向页面传"多个不同类型的值",比如总页数、当前页数,这些都是单个属性值,还有就是List集合数据,请问这些一起传用JSON怎么实现?如果这么多数据还是用[0]的方式,是不是有些不靠谱了呢?而且取值不明确
追答
那也没问题啊,假如做分页的话,你完全可以把总页数、当前页数、List集合...等等 都用Map存储,然后转乘JSON格式。到前台了取值跟我写的差不多,就不用[0]了,直接data.键名称就得到了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(data.length>0)
{
var data = eval("("+data+")");
var dataList = data.stuList;
for(var i=0;i<dataList.length;i++)
{
//可以解析了;
//dataList[i].age
//dataList[i].name
//dataList[i].id
}
}
追问
谢谢你的回答,看来这段代码写的比我成熟
追答
写多了而已,以后你会更上一层楼。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$.ajax({
type:"GET",
url: urls,
success: function(data){
data=eval("("+data+")");
............
用eval这个函数即可 然后直接data['stulist'] 完事 eval()这个函数把你返回的json数据 转化为了数组
type:"GET",
url: urls,
success: function(data){
data=eval("("+data+")");
............
用eval这个函数即可 然后直接data['stulist'] 完事 eval()这个函数把你返回的json数据 转化为了数组
追问
嗯,我在java中直接将集合用JSONObject处理成JSON对象形式,在Jquery回调方法中就能直接使用data.stuList了,你说的eval方法也可以,具体用那个看功能而定吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var tempJson = Ext.decode(response.responseText);
然后用火狐浏览器调试,点击看看tempJson里面有什么,然后你就知道怎么解析了!
然后用火狐浏览器调试,点击看看tempJson里面有什么,然后你就知道怎么解析了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询