Javascript: Доступ к вложенным значениям в данных JSON с использованием имен динамических переменных

У меня есть вложенный объект Javascript, например

var data = { 'name':    { 'heading': 'Name', 'required': 1, 'type': 'String' },
             'profile': {
                  'age':   { 'heading': 'Age', 'required': 0, 'type': 'Number' },
                  'phone': { 'heading': 'Phone', 'required': 0, 'type': 'String'},
                  'city':  { 'heading': 'City', 'required': 0, 'type': 'String'},
                  },
             'status':  { 'heading': 'Status', 'required': 1, 'type': 'String' }
           };

Здесь я могу получить доступ к полям как data.profile.age .type или data.name.type. Без вопросов имя.тип. Без вопросов имя.тип. Без вопросов И если у меня есть имена динамических переменных, я могу получить доступ, как показано ниже. Опять же, никаких проблем.

f = 'profile'; data[f].age.type

Но здесь у меня есть имена переменных, такие как 'name', 'profile.age', 'profile.city' и т. Д., И, очевидно, я не могу получить к ним доступ как f = 'profile.age'; data [f] .type, который не будет работать.

Может ли кто-нибудь подсказать мне, как получить к ним доступ (получить / установить) наиболее прямым и простым способом?

Примечание: я пробовал это, и он работает для получения .

data.get = function(p) { o = this; return eval('o.'+p); };
f = 'profile.age'; data.get(f).name;

, хотя набор не кажется достаточно простым. Пожалуйста, дайте мне знать, если есть лучшие решения для получения и настройки.

10
задан rsmoorthy 13 December 2010 в 17:32
поделиться