作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何获取对象的给定子节点的 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']
关于Javascript/JSON 获取给定子节点的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790607/
我是一名优秀的程序员,十分优秀!