Получить значения из объекта, если имя объекта хранится как переменная? - PullRequest
1 голос
/ 10 ноября 2011

У меня возвращен объект JSON в следующем формате:

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

miscObject содержит где-то более 1500 записей, каждая из которых названа постепенно.

Как мне получить значения «miscObject.205.h» и «miscObject.205.l», если у меня есть «205», хранящийся в переменной, без необходимости циклически перебирать все объекты внутри miscObject?

Ответы [ 5 ]

5 голосов
/ 10 ноября 2011

Похоже, вы говорите об объектах Javascript, а не о строке JSON.

x[y] и x.y в основном взаимозаменяемы при доступе к свойствам объектов Javascript, сразличие в том, что 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 голос
/ 10 ноября 2011

Использовать синтаксис поиска членов

var miscObject = $.parseJSON(theJsonString);
var name = '205';
miscObject[name].h;
0 голосов
/ 10 ноября 2011

Вы можете сделать это, чтобы получить объект:

num = '205'
miscObject[num]
0 голосов
/ 10 ноября 2011
var miscObject = JSON.parse(your-JSON-object);    
var value = miscObject['205'].h
0 голосов
/ 10 ноября 2011

Доступ к значениям объекта можно получить двумя способами - используя обозначение «точка», как вы упомянули, или используя []:

Должно работать следующее:

var result = miscObject["205"].h;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...