JSFiddle - React, Tailwind, and code Playground
JavaScript
var data = {
"jsonData": {
"a" : "b + c",
"b" : "d + e",
"d" : "h + i",
"c" : "f + g"
}
};
function getJson(item, data) {
if(!data["jsonData"].hasOwnProperty(item)) return null;
var out = {
mainItem: item,
formula: data["jsonData"][item]
};
// Break up formula
var components = out.formula.split(" ");
for(var i = 0; i < components.length; i++) {
var child = getJson(components[i], data);
if(child !== null) {
out["childComponent"] = out["childComponent"] == undefined ? [] : out["childComponent"];
out["childComponent"].push(child);
}
}
return out;
}
console.log(JSON.stringify(getJson("a", data), null, 4));
alert(JSON.stringify(getJson("a", data), null, 4));