如果对象的名称存储为变量,则从对象获取值?

时间:2011-11-09 23:20:52

标签: javascript json object

我有一个JSON对象返回,格式如下:

"miscObject": {
    "205": [
        {
            "h": "Foo",
            "l": "Bar"
        }
        ]
    }

miscObject包含超过1500个条目,每个条目都以递增方式命名。

如果我将“205”存储在变量中而不必遍历miscObject中的所有对象,我怎样才能获得'miscObject.205.h'和'miscObject.205.l'的值?

5 个答案:

答案 0 :(得分:5)

您似乎在谈论Javascript对象而不是JSON字符串。

访问Javascript对象的属性时,

x[y]x.y大多可以互换,区别在于y在前者中可能是表达式

利用这个来解决你的问题,如下:

var num = '205';
console.log(miscObject[num].l);
//                    ^^^^^
//                      \
//                     instead of `.num`, which wouldn't be the same as
//                       `num` is not the literal name of the property

答案 1 :(得分:1)

使用成员查找语法

var miscObject = $.parseJSON(theJsonString);
var name = '205';
miscObject[name].h;

答案 2 :(得分:0)

可以通过两种方式访问​​对象值 - 使用您提到的'dot'表示法,或使用[]

以下内容应该有效:

var result = miscObject["205"].h;

答案 3 :(得分:0)

var miscObject = JSON.parse(your-JSON-object);    
var value = miscObject['205'].h

答案 4 :(得分:0)

您可以这样做以获取对象:

num = '205'
miscObject[num]