我有一个JSON对象
{scope:{results:{...}}}
我有一个名为
"data.one.url"
现在,我想在JSON对象中设置值。通常我会这样:
scope.results.data.one.url = "hello";
但是,当我只有上面提到的字符串时,该怎么办?
这是数据结构:
myData = {scope:{results:{data:{one:{url:"The url"}}}}}
定义一个基数。您的字符串访问路径是相对于此的:
var base = myData.scope.results;
以及通过路径访问的函数:
function getIn(base, path) {
var components = path.split(".");
var current = base;
for (var i = 0; i < components.length; i++) {
current = current[components[i]];
}
return current;
}
并使用它:
getIn(base, "data.one.url")
>>> "The url"
或相对于根:
getIn(myData, "scope.results.data.one.url")
>>> "The url"
当然,需要更多的错误处理以使其稳固于您不期望的路径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句