ключи json как числа

У меня есть JSON, переданный в скрипт. Я не знаю ключей JSON, так как они динамические.

На самом деле это числа. Вот что я получаю.

var countries = {"223":"142,143","222":"23,26,25,24","170":"1,2"};

Я пытался получить доступ к данным следующим образом:

var objKey = 223;  (var objKey = "223";)
countries.objKey;

Я попытался изменить JSON на

var countries = {"country223":"142,143","country222":"23,26,25,24","country170":"1,2"};

... и получить к нему доступ следующим образом:

var objKey = "country"+223; (var objKey = "country"+"223";)
countries.objKey;

... опять ничего.

Мы будем очень признательны за любые советы.


person Jeffz    schedule 09.02.2011    source источник
comment
Это так не работает. objKey не является собственностью стран.   -  person mpen    schedule 09.02.2011


Ответы (1)


Вместо этого:

countries.objKey;

Сделай это:

 countries[objKey];

С помощью записи в квадратных скобках вы можете использовать значение, на которое ссылается переменная (или использовать строку или число), чтобы сослаться на имя свойства.

person user113716    schedule 09.02.2011
comment
@patrick dw Я все еще в самом начале своего JS-приключения :) - person Jeffz; 09.02.2011
comment
... так что объекты JSON и JS для меня выглядят одинаково. Если вы посмотрите на них, они построены почти одинаково. - person Jeffz; 09.02.2011
comment
@Jeffz: я удалил эту часть комментария, потому что не был уверен, что вы имели в виду под передачей JSON в скрипт. Думал, возможно, это началось как JSON. По сути, данные JSON представляют собой текстовый формат обмена данными. Это просто похоже на объекты и массивы javascript, потому что на этом основан стандарт. Но на самом деле это не JSON, если только это не просто текст. Например, это литерал объекта {"a":"b"}, но это допустимый JSON '{"a":"b"}' (обратите внимание на внешние кавычки), который можно разобрать на первый объект. - person user113716; 09.02.2011
comment
@patrick dw - еще раз спасибо за ваше замечание, оно определенно полезно, я просто надеюсь, что это произойдет скорее раньше, чем позже, когда я перестану задавать глупые вопросы :)) .. но это то, как вы учитесь ... есть хороший .. спасибо .. Джефф - person Jeffz; 09.02.2011
comment
@Jeffz: Совсем не глупо. Действительно, так вы учитесь. У тебя тоже хороший. :о) - person user113716; 09.02.2011