您的位置:首页 > Web前端 > JavaScript

js deep copy 解析json

2016-03-01 16:46 591 查看
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;

                    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript