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