2015-08-20 2 views
0

У меня есть Json схемы, как это:Проблема извлечения данных в формате JSON в JavaScript

{"THEMES":{ 
"CATEGORY": 
     ["TEST1","TEST2","TEST3","DFSDFSDF"], 
"OVER AGAIN": 
     ["YOUNG","OLD","GRANPA"], 
"AND AGAIN": 
     ["AND","ANOTHER","WORD"], 
"NEW CATEGORY": 
     ["AGAIN","OOPS","CAN","REDBULL"] 
}} 

Ну, мне нужно, чтобы получить значения ключей внутри контроллера AngularJs и мой код, чтобы получить его, как:

$http.get('json/word_bank.json') 
     .success(function (result) { 
      $scope.themes = Object.keys(result.TEMAS); 
      console.log($scope.themes); 

И я получаю в моей консоли: [ «КАТЕГОРИЯ», «зА РАЗ», «И сНОВА», «Новая категория»]

до сих пор так хорошо, но мне нужно, чтобы получить доступ к значениям ключей, как TEST 1, TEST2 и т. Д. Для этого я попытался, например: console.log ($ scope.themes [0] [0]);

И консоль возвращает букву «C» или первую букву строки «CATEGORY». И это происходит со всеми остальными, поэтому код, по-моему, преобразует мой начальный массив в строковые элементы. Я уже пробовал много циклов или итераций по массиву, но я не работаю. Я что-то упускаю?

+0

не имеют '0' индекс в верхней части массива. 'arr ['THEMES'] ['CATEGORY'] [1]' вернет 'TEST2' –

ответ

1

$scope.themes Относится к массиву ключей объекта в объекте result.THEMES. Когда вы вызываете $scope.themes[0][0], вы получаете первый элемент массива ключей «CATEGORY», а затем первый символ этой строки «C».

Вам понадобится ссылка на фактический объект темы, затем передайте имя темы, чтобы получить ее значения.

themesObject[$scope.themes[0]] -> ["TEST1","TEST2","TEST3","DFSDFSDF"]

Использование кода:

$http.get('json/word_bank.json') 
    .success(function(result) { 
    $scope.themes = Object.keys(result.THEMES); 
    console.log(result.THEMES[$scope.themes[0]]); 
    }); 
+0

Работал как шарм. Большое спасибо. –