您如何获取到对象的给定子节点的JSON路径?
例如:
var data = { key1: { children: { key2:'value', key3:'value', key4: { ... } }, key5: 'value' }
给出了一个引用key4的变量。现在,我正在寻找绝对路径:
data.key1.children.key4
有什么办法可以在JS中完成这项工作吗?
先感谢您。
因此,您有一个值为“ key3”的变量,并且您想知道如何基于此字符串的值动态访问此属性?
var str = "key3"; data["key1"]["children"][str];
编辑
哇,我不敢相信我是第一次尝试。其中可能存在一些错误,但是它适用于您的测试用例
现场演示
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']