Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从完全限定字符串获取JSON属性_Javascript_Json - Fatal编程技术网

Javascript 从完全限定字符串获取JSON属性

Javascript 从完全限定字符串获取JSON属性,javascript,json,Javascript,Json,假设我有一个JSON对象,如下所示: var a = { "b" : { "c" : 1 } } 当我知道字符串“b.c”时,有没有一种快速的方法可以到达c 我想我可以把绳子分成点,然后从点钻到c,但我希望有一个快速的方法一次完成 就像我希望的那样,可能var c=a[“b.c”]但这不起作用像你建议的那样使用拆分,这样怎么样 var a = { "b" : { "c" : 1 } } var n = "b.c".split("."); var x = a;

假设我有一个JSON对象,如下所示:

var a = {
  "b" : {
    "c" : 1
  }
}
当我知道字符串“b.c”时,有没有一种快速的方法可以到达c

我想我可以把绳子分成点,然后从点钻到c,但我希望有一个快速的方法一次完成


就像我希望的那样,可能
var c=a[“b.c”]
但这不起作用

像你建议的那样使用拆分,这样怎么样

var a = {
  "b" : {
    "c" : 1
  }
}

var n = "b.c".split(".");
var x = a;
for(var i = 0; i < n.length; i++){
   x = x[n[i]];
}
//x should now equal a.b.c

像您建议的那样使用拆分,这样如何:

var a = {
  "b" : {
    "c" : 1
  }
}

var n = "b.c".split(".");
var x = a;
for(var i = 0; i < n.length; i++){
   x = x[n[i]];
}
//x should now equal a.b.c

看。该链接还显示了如何为不支持ES5的浏览器实现垫片。请注意,此代码经过简化,假定对象中存在键



看。该链接还显示了如何为不支持ES5的浏览器实现垫片。请注意,此代码经过简化,假设对象中存在键。

我的上帝。。。每天都有人问……Javascript对象!=JSON。你有哪一个问题?@dystroy这个问题不是关于解析JSON的。例如,它链接到这个问题:@dystroy:这个问题不是#14396647的重复。它可能需要一个提到
eval
的答案,但这绝对不是同一个问题。我的上帝。。。每天都有人问……Javascript对象!=JSON。你有哪一个问题?@dystroy这个问题不是关于解析JSON的。例如,它链接到这个问题:@dystroy:这个问题不是#14396647的重复。它可能需要一个提到
eval
的答案,但这绝对不是同一个问题;不需要ES5请注意,如果您返回了
undefined
,如果密钥的任何部分都是missing@JanDvorak:它实际上返回未定义,请尝试将“b.c”更改为“b.d”。虽然我很欣赏它在找到第一个
未定义的
时没有提前中断循环。我有一个剧本和编辑;-)@詹德沃夏克:我的编辑没有。跟上好零钱。然而,
a={zero:0}呢;n=“zero.toString”
?:-)它应该返回一个函数,但不返回+1;不需要ES5请注意,如果您返回了
undefined
,如果密钥的任何部分都是missing@JanDvorak:它实际上返回未定义,请尝试将“b.c”更改为“b.d”。虽然我很欣赏它在找到第一个
未定义的
时没有提前中断循环。我有一个剧本和编辑;-)@詹德沃夏克:我的编辑没有。跟上好零钱。然而,
a={zero:0}呢;n=“zero.toString”
?:-)它应该返回一个函数,但不返回
var a = {
  "b" : {
    "c" : 1
  }
}

var c = "b.c".split(".").reduce(function(obj, key) {
    return obj[key];
}, a);

alert(c)