Как получить доступ к объекту JSON с помощью переменной javascript - PullRequest
12 голосов
/ 15 мая 2011

Я имею в виду, что у меня есть данные JSON:

[{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}]

, и я хочу сделать что-то вроде этого:

var x = "ADAM";
alert(data.x.TEST);

Ответы [ 4 ]

20 голосов
/ 15 мая 2011
var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}],
    x = "ADAM";

alert(data[0][x].TEST);

http://jsfiddle.net/n0nick/UWR9y/

5 голосов
/ 15 мая 2011

Поскольку объекты в javascripts обрабатываются точно так же, как хеш-карты (или ассоциативные массивы), вы можете просто выполнять data ['adam']. TEST точно так же, как вы можете делать data.adam.TEST. Если у вас есть индекс переменной, просто используйте обозначение [].

var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}]
alert(data[0].ADAM.TEST);
alert(data[0]['ADAM'].TEST)

если вы просто сделаете

var data = {"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}};

вы можете получить к нему доступ, используя data.ADAM.TEST и data ['ADAM']. TEST

0 голосов
/ 01 июля 2018
 var data = [{"ADAM":{"TEST":1}, "BOBBY":{"TEST":2}}],
 x = "ADAM";

alert(data[x].TEST);

Это то, что сработало для меня. Таким образом, вы можете передать переменную в функцию и избежать повторения кода.

function yourFunction(varName, elementName){
//json GET code setup
document.getElementById(elementName).innerHTML = data[varName].key1 + " " + data.[varName].key2;
}
0 голосов
/ 15 мая 2011

Это не сработает, так как вы устанавливаете x как строковый объект, без доступа к значению из вашего массива:

alert(data[0]["ADAM"].TEST);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...