首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

批改json格式

2013-07-16 
修改json格式使用js对json进行操作,{AreaName:江苏省,AreaCode:320000},{AreaName:南京市,Ar

修改json格式
使用js对json进行操作,{"AreaName":"江苏省","AreaCode":"320000"},{"AreaName":"南京市","AreaCode":"320100"},{"AreaName":"市辖区","AreaCode":"320101"},{"AreaName":"玄武区","AreaCode":"320102"},{"AreaName":"白下区","AreaCode":"320103"},{"AreaName":"秦淮区","AreaCode":"320104"},{"AreaName":"建邺区","AreaCode":"320105"},{"AreaName":"鼓楼区","AreaCode":"320106"},{"AreaName":"下关区","AreaCode":"320107"},{"AreaName":"浦口区","AreaCode":"320111"},{"AreaName":"栖霞区","AreaCode":"320113"},{"AreaName":"雨花台区","AreaCode":"320114"},{"AreaName":"江宁区","AreaCode":"320115"},{"AreaName":"六合区","AreaCode":"320116"},{"AreaName":"溧水县","AreaCode":"320124"},{"AreaName":"高淳县","AreaCode":"320125"}这种样式的数据转换成

{"AreaName":"江苏省","AreaCode":"320000","cityList":[{"AreaName":"南京市","AreaCode":"320100","areaList":[{"AreaName":"市辖区","AreaCode":"320101"},{"AreaName":"玄武区","AreaCode":"320102"},{"AreaName":"白下区","AreaCode":"320103"},{"AreaName":"秦淮区","AreaCode":"320104"},{"AreaName":"建邺区","AreaCode":"320105"},{"AreaName":"鼓楼区","AreaCode":"320106"},{"AreaName":"下关区","AreaCode":"320107"},{"AreaName":"浦口区","AreaCode":"320111"},{"AreaName":"栖霞区","AreaCode":"320113"},{"AreaName":"雨花台区","AreaCode":"320114"},{"AreaName":"江宁区","AreaCode":"320115"},{"AreaName":"六合区","AreaCode":"320116"},{"AreaName":"溧水县","AreaCode":"320124"},{"AreaName":"高淳县","AreaCode":"320125"}]}]}
这种形式的,用js怎么实现??大神求帮助 JSON JavaScript
[解决办法]

引用:
写的有点恶心,如果有问题我再优化一下。

var citys = [
    {"AreaName":"江苏省","AreaCode":"320000"},
    {"AreaName":"南京市","AreaCode":"320100"},
    {"AreaName":"市辖区","AreaCode":"320101"},
    {"AreaName":"玄武区","AreaCode":"320102"},
    {"AreaName":"白下区","AreaCode":"320103"},
    {"AreaName":"秦淮区","AreaCode":"320104"},
    {"AreaName":"建邺区","AreaCode":"320105"},
    {"AreaName":"鼓楼区","AreaCode":"320106"},
    {"AreaName":"下关区","AreaCode":"320107"},
    {"AreaName":"浦口区","AreaCode":"320111"},
    {"AreaName":"栖霞区","AreaCode":"320113"},
    {"AreaName":"雨花台区","AreaCode":"320114"},
    {"AreaName":"江宁区","AreaCode":"320115"},


    {"AreaName":"六合区","AreaCode":"320116"},
    {"AreaName":"溧水县","AreaCode":"320124"},
    {"AreaName":"高淳县","AreaCode":"320125"}
];
function fn(data , first , second , level){
    var result = [] , temp , startIndex=0;
    if(!level){
        second = '0000';
        level = 1;
        startIndex = 2;
    }else{
        startIndex = level*2;
    }
    for(var i in data){     
        if(data[i].AreaCode.indexOf(second)==startIndex){
            temp = data[i];            
            temp['cityList'] = fn(data , data[i].AreaCode.substring(0,level*2) , second.substring(startIndex) , level+1);
            result.push(temp);
        }else if(!second&&data[i].AreaCode.indexOf('00')==-1&&!data[i].AreaCode.indexOf(first)){            
            result.push(data[i]);
        }
    }
    return result;
}
console.log(fn(citys));



代码还有点问题,修改了下。

var citys = [
    {"AreaName":"江苏省","AreaCode":"320000"},
    {"AreaName":"南京市","AreaCode":"320100"},
    {"AreaName":"市辖区","AreaCode":"320101"},
    {"AreaName":"玄武区","AreaCode":"320102"},
    {"AreaName":"白下区","AreaCode":"320103"},
    {"AreaName":"秦淮区","AreaCode":"320104"},
    {"AreaName":"建邺区","AreaCode":"320105"},
    {"AreaName":"鼓楼区","AreaCode":"320106"},
    {"AreaName":"下关区","AreaCode":"320107"},
    {"AreaName":"浦口区","AreaCode":"320111"},
    {"AreaName":"栖霞区","AreaCode":"320113"},
    {"AreaName":"雨花台区","AreaCode":"320114"},
    {"AreaName":"江宁区","AreaCode":"320115"},


    {"AreaName":"六合区","AreaCode":"320116"},
    {"AreaName":"溧水县","AreaCode":"320124"},
    {"AreaName":"高淳县","AreaCode":"320125"},

    {"AreaName":"江苏省123","AreaCode":"310000"},
    {"AreaName":"南京市123","AreaCode":"310100"},
    {"AreaName":"市辖区123","AreaCode":"310101"},
    {"AreaName":"玄武区123","AreaCode":"310102"},
    {"AreaName":"白下区123","AreaCode":"310103"},
    {"AreaName":"秦淮区123","AreaCode":"310104"},
    {"AreaName":"建邺区123","AreaCode":"310105"},
    {"AreaName":"鼓楼区123","AreaCode":"310106"},
    {"AreaName":"下关区123","AreaCode":"310107"},
    {"AreaName":"浦口区123","AreaCode":"310111"},
    {"AreaName":"栖霞区123","AreaCode":"310113"},
    {"AreaName":"雨花台区123","AreaCode":"310114"},
    {"AreaName":"江宁区123","AreaCode":"310115"},
    {"AreaName":"六合区123","AreaCode":"310116"},
    {"AreaName":"溧水县123","AreaCode":"310124"},
    {"AreaName":"高淳县123","AreaCode":"310125"},

    {"AreaName":"江苏省456","AreaCode":"330000"},
    {"AreaName":"南京市456","AreaCode":"330100"},
    {"AreaName":"市辖区456","AreaCode":"330101"},
    {"AreaName":"玄武区456","AreaCode":"330102"},
    {"AreaName":"白下区456","AreaCode":"330103"},
    {"AreaName":"秦淮区456","AreaCode":"330104"},
    {"AreaName":"建邺区456","AreaCode":"330105"},
    {"AreaName":"鼓楼区456","AreaCode":"330106"},
    {"AreaName":"下关区456","AreaCode":"330107"},
    {"AreaName":"浦口区456","AreaCode":"330111"},
    {"AreaName":"栖霞区456","AreaCode":"330113"},
    {"AreaName":"雨花台区456","AreaCode":"330114"},
    {"AreaName":"江宁区456","AreaCode":"330115"},
    {"AreaName":"六合区456","AreaCode":"330116"},
    {"AreaName":"溧水县456","AreaCode":"330124"},
    {"AreaName":"高淳县456","AreaCode":"330125"}
];
function fn(data , first , second , level){
    var result = [] , startIndex=0;
    if(!level){
        second = '0000'; level = 1; startIndex = 2;
    }else{
        startIndex = level*2;
    }


    for(var i in data){     
        if(data[i].AreaCode.indexOf(second)==startIndex&&(!data[i].AreaCode.indexOf(first)&&level>1
[解决办法]
level==1)){        
            data[i]['cityList'] = fn(data , data[i].AreaCode.substring(0,level*2) , second.substring(startIndex) , level+1);
            result.push(data[i]);
        }else if(!second&&data[i].AreaCode.indexOf('00')==-1&&!data[i].AreaCode.indexOf(first)){            
            result.push(data[i]);
        }
    }
    return result;
}
console.log(fn(citys));

热点排行