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

时间:2010-02-18 16:57:37

标签: jquery json search arrays key

我有一个两级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)

返回undefined

= /

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

最准确的方法是

if ("alpha" in regexDefs)
{
}

即使alpha是假名,例如0nullNaNfalse等,也会评估为真。

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

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

答案 1 :(得分:3)

只是做:

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

if(regexDefs[key]) {
    // do your thing
}