_x000D_
var data = [{"country":"india","gender":"male","type":"lower","class":"X"},_x000D_
{"country":"china","gender":"female","type":"upper"},_x000D_
{"country":"india","gender":"female","type":"lower"},_x000D_
{"country":"india","gender":"female","type":"upper"}];_x000D_
var seq = ["country","type","gender","class"];_x000D_
var treeData = createHieArr(data,seq);_x000D_
console.log(treeData)_x000D_
function createHieArr(data,seq){_x000D_
var hieObj = createHieobj(data,seq,0),_x000D_
hieArr = convertToHieArr(hieObj,"Top Level");_x000D_
return [{"name": "Top Level", "parent": "null",_x000D_
"children" : hieArr}]_x000D_
function convertToHieArr(eachObj,parent){_x000D_
var arr = [];_x000D_
for(var i in eachObj){_x000D_
arr.push({"name":i,"parent":parent,"children":convertToHieArr(eachObj[i],i)})_x000D_
}_x000D_
return arr;_x000D_
}_x000D_
function createHieobj(data,seq,ind){_x000D_
var s = seq[ind];_x000D_
if(s == undefined){_x000D_
return [];_x000D_
}_x000D_
var childObj = {};_x000D_
for(var ele of data){_x000D_
if(ele[s] != undefined){_x000D_
if(childObj[ele[s]] == undefined){_x000D_
childObj[ele[s]] = [];_x000D_
}_x000D_
childObj[ele[s]].push(ele);_x000D_
}_x000D_
}_x000D_
ind = ind+1;_x000D_
for(var ch in childObj){_x000D_
childObj[ch] = createHieobj(childObj[ch],seq,ind)_x000D_
}_x000D_
return childObj;_x000D_
}_x000D_
}
_x000D_