
查找对象所有的属性,如果找到对象,递归;如果找到数组,检查每个元素,看id是不是所找的id。
假设数组里不会再嵌套数组了,如果有这种情况还要递归,原理一样的。
var json = '{"attrA":1,"listA":[{"id":1,"a":1,"b":1},{"id":2,"a":2,"b":3},{"id":3,"a":3,"b":3}],"listB":{"c":4,"d":[{"id":4,"a":4,"b":4},{"id":5,"a":5,"b":5}]}}';var obj = JSONparse(json);
function findDataById(obj, id){
var res = null;
for(var i in obj){
if(ArrayisArray(obj[i])){
res = findDataInArr(obj[i], id);
}else if(obj[i] && typeof obj[i] === "object"){
res = findDataById(obj[i], id);
}else{
//is attribute
}
if(res){
return res;
}
}
return null;
}
function findDataInArr(arr, id){
for(var i = 0; i < arrlength; i++){
if(arr[i]id === id){
return arr[i];
}
}
return null;
}
consolelog(findDataById(obj, 2));
consolelog(findDataById(obj, 3));
consolelog(findDataById(obj, 4));
consolelog(findDataById(obj, 8));
造了一个稍微复杂一点的对象用来测试:
$ajax({
url: '/MUserCenter/financial',
type: 'POST',
data: {page:page+1,status:status},
success:function(json){
json = eval('('+json+')');
if(jsoncode == 1 && jsondatalength != 0){
for(var i=0,len=jsondatalength;i<len;i++){
str += '<li class="bg0">';
str += '<h3>'+jsondata[i]['plan_name']+'</a>';
str += '</li>';
}
}
$('#lists')append(str); //把遍历的值append到要显示的地方(这个是分页追加,具体情况具体处理)
});
以上就是关于jquery 根据id去找 json中list的数据全部的内容,包括:jquery 根据id去找 json中list的数据、jquery ajax返回后台list,要点写啊 返回后,如何取数据,给例子 是单纯返回list集合、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)