js deep copy 解析json

var deepCopyArray = function(arr){
                        var result=[];
                        for(var i=0;i<arr.length;i++){
                            result.push(deepCopyObj(arr[i]));
                        }
                        return result;
                    };
                    var deepCopyObj = function(obj) { 
                        var result={};
                        for (var key in obj) {
                              result[key] = obj[key];
                        } 
                        return result; 

                    };


解析json

var calcValue = function(item, index){
                        var result;
                        if($.isArray(item)){ //是数组
                            result = [];
                            for(var i = 0;i < item.length;i++){
                                if(typeof(item[i]) != "function"){
                                    if($.isArray(item[i])){
                                        if(i >= 5) break;
                                        var obj = {
                                            items : calcValue(item[i],i),
                                            title : '[' + i + ']'
                                        }
                                        result.push(obj);
                                    }
                                    else{
                                        result.push(calcValue(item[i],i));
                                    }
                                }
                            }
                            if(item.length > i && $.isArray(item[i])){
                                result.push({title:'更多数据请查看数据表',data:''});
                            }
                        }
                        else if(typeof(item) == 'object'){ //是对象
                            result = [];
                            for (var i in item) {
                                if($.isArray(item[i])){
                                    result.push({title:i,items:calcValue(item[i])});
                                }
                                else if(typeof(item[i]) == 'object')
                                    result.push({title:i,items:calcValue(item[i])});
                                else
                                    result.push({title:i,data:item[i]});
                            }
                            if(index){
                                if(result.length == 1)
                                    return {title:'[' + index + ']',data:result[0]};
                                else
                                    return {title:'[' + index + ']',items:result};
                            }
                            return result.length == 1? result[0] : result;
                        }
                        else { //是值
                            result = {title:'[' + index + ']',data:item};
                        }
                        return result;
                    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值