我有一个像这样的Json架构:
{"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);
我进入我的控制台: [" CATEGORY","重拍","再次","新类别"]
到目前为止一切顺利,但我需要访问TEST1,TEST2等键值。 为此,我试过,例如: 的console.log($ scope.themes [0] [0]);
并且控制台返回字母" C"或者" CATEGORY"的第一个字母;串。所有其余部分都会发生这种情况,因此代码正在将我的初始数组转换为字符串元素。我已经在数组上尝试了很多循环或迭代,但我没有工作。我错过了什么吗?
答案 0 :(得分: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]]);
});