您如何动态访问JSON对象的属性

问题描述 投票:1回答:4

我有一个两级JSON对象

EX:

var regexDefs = {

  "alpha": {
    "regex": /^[A-Z]+$/,
    "errMsg": "Alpha Only"
  }
}

我想做一些类似于在数组中搜索键的操作。

((使用jQuery的inArray)

var key = "alpha";
alert($.inArray(key,regexDefs));

如果键在数组中,那么我想做

if(regexDefs[key].regex.test){ return true; }

我知道可能缺少一些时髦的东西,因为这是一个对象而不是数组...

正在执行

$.inArray(key,regexDefs)

返回未定义

= /

有什么想法吗?

jquery json search arrays key
4个回答
6
投票

最准确的方法是

if ("alpha" in regexDefs)
{
}

即使alpha是一个虚假值,例如0nullNaNfalse等,这也将计算为真

您可以对变量执行相同操作:

var key = "alpha";
if (key in regexDefs)
{
}

3
投票

只需:

if (regexDefs[key]) {
    // Present.
} else {
    // Not present.
}

要了解有关JSON的更多信息,我可以推荐您Mastering JSON


2
投票
if (regexDefs['alpha']) {
    // alpha exists in regexDefs
});

2
投票

如果密钥存储在名为key的变量中,则可以使用类似以下内容的东西:

if(regexDefs[key]) {
    // do your thing
}
© www.soinside.com 2019 - 2024. All rights reserved.