Я думаю, что вы можете использовать ответ JSON в качестве ассоциативного массива. Таким образом, вы должны иметь возможность напрямую войти и использовать JSON.
Предполагая, что вы получили приведенный выше пример:
$('result').innerHTML = data['results']['dataset_a']['dataset_two']['data'];
// Or the shorter form:
$('result').innerHTML = data.results.dataset_a.dataset_two.data;
Поймите, что я не проверял это, но безопаснее использовать квадратные скобки с переменной, чем использовать круглые скобки плюс имя с точкой доступа.
Ваш пример терпит неудачу из-за какой-то запутанной логики, которую я только что уловил.
$.each(data.results), function(name, result) {
hash_table[result.(name).extra_info.a] = result.(name).some_dataset;
});
Теперь цикл foreach проходит через переменную data.results
, чтобы найти внутренние элементы на глубине 1. Найденный элемент передается лямбда-ключу с ключом элемента. АКА, первый результат будет name = "datasets_a" item = object
. Следите за мной до сих пор? Теперь вы получаете доступ к возвращенному хешу, объекту в item
, как если бы он имел дочерний ключ в name
... "datasets_a". Но подождите, этот является объектом!
Если ничего не помогает ... динамически запишите свой результат JSON в текстовое поле и убедитесь, что он правильно отформатирован.