Как получить значение JSON из переменной

Предположим, что у меня есть {"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 в благодарном случае.

Ответ 1

Используйте другую нотацию 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.

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

Ответ 2

Используйте data[c].id.

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