Как получить значение JSON из переменной - PullRequest
10 голосов
/ 13 мая 2011

предположим, у меня есть {"data": {"243232": {"id": "testid","name": "test" } }}

так что когда я делаю

var a = data.243232.id; alert(a); // это дает мне testid.

но когда мне нравится

    var c = 243232; 
    var d = data.c.id;
    alert(d) //it gives as undefined.

так, как получить правильное значение, когда я предупреждаю d в вышеупомянутом случае, спасибо.

Ответы [ 2 ]

11 голосов
/ 13 мая 2011

Используйте другое обозначение var a = data['243232'].id

Помните, что все объекты в JS на самом деле являются просто ассоциативными массивами.

Ключи объектов просто переменная в js и, следовательно, требуют правильного именования

правила именования переменных:

  • Первый символ должен быть буквой (в верхнем или нижнем регистре) или подчеркивание (_) или знак доллара ($).
  • Последующие символы могут быть буквами, цифры, подчеркивания или знаки доллара в переменных JavaScript.
  • Имя переменной JavaScript не может быть зарезервированное слово JavaScript, см. подробности JavaScript зарезервированы Символы

JSON обычно использует функцию eval (), чтобы превратить строку в структуру данных. Это учитывает неправильные ключи. Если вы хотите сослаться на неправильный ключ, вам нужно использовать метод ассоциативного массива.

Что касается вас, дополнение

var c = 243232; 
var d = data[c].id;
alert(d) //it gives as undefined.

будет работать

6 голосов
/ 13 мая 2011

Использование data[c].id.

В JavaScript .prop является синтаксическим сахаром для ["prop"].Обозначение в скобках позволяет использовать значения, которые будут недопустимыми при использовании . (например, background-image) и переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...