正在查找对象内部的JSON路径
Finding JSON path inside object
如何签入JSON对象,输入路径是否存在?
var obj = {
"schemaOne": {
"name": "abc",
"Path": "i.abc",
"count": 5347,
"subFolders": [
]
},
"schemaTwo": {
"name": "cde",
"Path": "i.cde",
"count": 0,
"subFolders": [
{
"name": "efg",
"Path": "",
"count": 0,
"subFolders": [
]
},
{
"name": "hij",
"Path": "i.hij",
"count": 1,
"subFolders": [
]
}
]
}
}
var inputpath = "obj.count";
在做了几项研究后,我发现了以下代码。在该代码中,o.Path
是用户已知的。但我想修改代码,以便动态检查JSON对象中是否存在obj.count
?
function upd(o, path, count) {
if (o.Path == path) {
o.count = count;
} else {
var arr;
if (Array.isArray(o)) arr = o;
else if (o.subFolders) arr = o.subFolders;
else return;
for(var j=0; j < arr.length; j++) {
upd(arr[j], path, count);
}
}
}
您的问题不是很清楚,用例也不是。正如有人告诉你的那样,obj
是一个JavaScript对象,而不是JSON。
如果我理解正确,您需要检查该对象中是否存在以字符串形式表示的路径(如"obj.count")。
一个非常快速但不安全的解决方案(eval
是邪恶的,几乎在任何情况下都应该避免)可以是:
if(eval(inputpath)){
//... do something
}
或者,我建议您编写一个函数,获取一个对象和一个字符串(路径)作为参数,解析字符串路径并检查对象是否包含这样的路径。
从这里开始:使用字符串键访问嵌套的JavaScript对象
相关文章:
- 如何在AngularJS-ng重复循环中将长JSON路径缩短为变量
- Json在应用程序电话间隙!路径是什么
- 尝试从JSON数组在谷歌地图中制作路径
- 从一个复杂的JSON对象打印每个JSON输入路径
- 遍历JSON以查找树路径
- 从包含密钥路径的字符串中获取json值
- 如何根据叶值显示JSON树中的特定路径
- Javascript-高级JSON关键路径
- 获取“;路径“;JavaScript中的JSON对象
- 将变量转换为 json 路径
- 查找键值的 JSON 路径
- 如何在D3.js中添加到地理位置的链接(创建为json路径)
- JSON路径中的变量
- Evaluate Json-嵌套的Json路径以字符串形式提供
- 正在查找对象内部的JSON路径
- Javascript使用附加字符访问json路径
- 删除JSON数组的重复键并获取其JSON路径
- JSON路径:按层次结构输出值加上父级
- 如何在Javascript中设置数组中的JSON路径
- 没有找到Ajax Json路径