I've been struggling to find/build a recursive function to parse this JSON file and get the total depth of its children.
The file looks something like this:
var input = {
"name": "positive",
"children": [{
"name": "product service",
"children": [{
"name": "price",
"children": [{
"name": "cost",
"size": 8
}]
}, {
"name": "quality",
"children": [{
"name": "messaging",
"size": 4
}]
}]
}, {
"name": "customer service",
"children": [{
"name": "Personnel",
"children": [{
"name": "CEO",
"size": 7
}]
}]
}, {
"name": "product",
"children": [{
"name": "Apple",
"children": [{
"name": "iPhone 4",
"size": 10
}]
}]
}]
}
You can use a recursive function to go through the whole tree:
The function works as follow:
jsFiddle: http://jsfiddle.net/chrisJamesC/hFTN8/
EDIT With modern JavaScript, the function could look like this:
jsFiddle: http://jsfiddle.net/chrisJamesC/hFTN8/59/
This will count the number of "leaves" in a tree:
And an alternative way to get depth: