读书人

批改json格式

发布时间: 2013-07-16 22:38:05 作者: rapoo

修改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));

读书人网 >JavaScript

热点推荐