user1138959 user1138959 - 1 year ago 62
JSON Question

Javascript/JSON get path to given subnode?

How would you get a JSON path to a given child node of an object?


var data = {
key1: {
children: {
key4: { ... }
key5: 'value'

An variable with a reference to key4 is given. Now I'm looking for the absolute path:


Is there any way to get this done in JS?

Thank you in advance.

Answer Source

So you have a variable with the value "key3", and you want to know how to access this property dynamically, based on the value of this string?

var str = "key3";


Wow, I can't believe I got this on the first try. There might be some bugs in it, but it works for your test case


var x = data.key1.children.key4;

var path = "data";
function search(path, obj, target) {
    for (var k in obj) {
        if (obj.hasOwnProperty(k))
            if (obj[k] === target)
                return path + "['" + k + "']"
            else if (typeof obj[k] === "object") {
                var result = search(path + "['" + k + "']", obj[k], target);
                if (result)
                    return result;
    return false;

var path = search(path, data, x);
console.log(path); //data['key1']['children']['key4']