jQuery и JSON: получение элемента по имени

У меня есть следующий JSON:

var json = {"system": {"world": {"actions": {"hello": {"src": "hello world / hello world.js", "command": "helloWorld"}}}}}

У меня есть следующий JavaScript:

var x = "system";
// получить содержимое системы, выполнив что-то вроде json.getElementByName(x)

Как мне получить содержимое системы используя json а также x в jQuery?

3 ответа

Решение

Просто используйте:

var x = "system";
json[x];

Это key/value система поиска, и для ее использования не требуется вызов функции.

Ну, насколько мне известно, jQuery не перемещается по произвольным объектам подобным образом - только DOM. Вы можете написать небольшую функцию для этого:

function findSomething(object, name) {
  if (name in object) return object[name];
  for (key in object) {
    if ((typeof (object[key])) == 'object') {
      var t = findSomething(object[key], name);
      if (t) return t;
    }
  }
  return null;
}

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

Попробуйте использовать JSON Path, это похоже на выражение XPath.

Другие вопросы по тегам