计算一个json的深度
2019-02-12 本文已影响1人
秋天de童话
计算一个json的深度
<SCRIPT LANGUAGE="JavaScript">
var json1 = "{'name':'t1','children':[{'children':[{'name':'t3'},{'name':'t4'},{'children':[{'name':'t5'},{'name':'t6'}]}]},{'name':'t2'}]}";
var json2 ={
"cluster": [{
"id": "cluster1.1",
"color": "blue",
"flights": "784",
"profit": "524125",
"clv": "2364",
"segment": [{
"id": "segment1.1",
"color": "green",
"flights": "82",
"profit": "22150",
"clv": "1564",
"node": [{
"id": "node1.1",
"color": "orange",
"xpos": "1",
"ypos": "1"
}, {
"id": "node1.2",
"color": "orange",
"xpos": "1",
"ypos": "2"
}, {
"id": "node1.3",
"color": "orange",
"xpos": "1",
"ypos": "3"
}, {
"id": "node1.4",
"color": "orange",
"xpos": "1",
"ypos": "4"
}]
}, {
"id": "segment1.2",
"color": "red",
"flights": "2",
"profit": "2150",
"clv": "1564",
"node": [{
"id": "node2.1",
"color": "tan",
"xpos": "2",
"ypos": "1"
}, {
"id": "node2.2",
"color": "tan",
"xpos": "2",
"ypos": "2"
}, {
"id": "node2.3",
"color": "tan",
"xpos": "2",
"ypos": "3"
}, {
"id": "node2.4",
"color": "tan",
"xpos": "2",
"ypos": "4"
}]
}]
}, {
"id": "cluster1.2",
"flights": "4",
"profit": "5245",
"clv": "2364",
"segment": [{
"id": "segment1.2",
"flights": "2",
"profit": "2150",
"clv": "1564",
"node": [{
"id": "node3.1",
"xpos": "3",
"ypos": "1"
}, {
"id": "node3.2",
"xpos": "3",
"ypos": "2"
}, {
"id": "node3.3",
"xpos": "3",
"ypos": "3"
}, {
"id": "node3.4",
"xpos": "3",
"ypos": "4"
}]
}]
}, {
"id": "cluster1.3",
"flights": "10",
"profit": "456978",
"clv": "548",
"segment": [{
"id": "segment1.3",
"flights": "2",
"profit": "2150",
"clv": "1564",
"node": [{
"id": "node4.1",
"xpos": "4",
"ypos": "1"
}, {
"id": "node4.2",
"xpos": "4",
"ypos": "2"
}, {
"id": "node4.3",
"xpos": "4",
"ypos": "3"
}, {
"id": "node4.4",
"xpos": "4",
"ypos": "4"
}]
}]
}]
};
jsonDepper(json2);
function jsonDepper(json){
var array = {'{':1,'}':-1},max=0,count=0;
json = JSON.stringify(json);
for (var i = 0, length = json.length; i < length; i++) {
var result = array[json.charAt(i)];
if (!result) continue;
count+=result;
if (count>max) {
max = count;
}
}
if (count != 0) {
alert('json format error!');
} else {
alert('max:'+max);
}
}
</SCRIPT>