访问嵌套的JSON对象

时间:2015-02-06 17:48:52

标签: javascript json angularjs

我正在构建一个Angular应用程序并使用角度翻译,因为它需要使用双语。

似乎正确创建了我的JSON(通过检查程序运行),但是当我尝试访问JSON对象中超出第一级别的项目时,它返回undefined。

例如,我在角度翻译中的JSON就是:

$translateProvider.translations('en', {
 "SEARCH": {
    "SEARCH" : "Recherce",
    "ABILITY" : "Abilities",
    "MANAGEMENT" : "Management Competencies",
    "PERSONAL" : "Personal Suitability"
 },

 "ABILITIES": {
    "TITLE" : "Test Title here",
    "ADVISORY": {
      "TITLE" : "Advisory Skills",
      "QUESTIONS": [
        {
          "TYPE" : "A",
          "LEVEL" : "45",
          "DESCRIPTION" : "Can you tell me how awesome you are"
        },
        {
          "TYPE" : "B",
          "LEVEL" : "100",
          "DESCRIPTION" : "Tell me about your wicked project"
        }
      ]
    }
  },

  "HEADLINE": "Oh No!",
  "SUB_HEADLINE": "Looks like you are not amazing"
});   

要开始访问JSON对象中的数据,我会

list = $translateProvider.translations('en');

现在,当在控制台中输出项目以查看它们是否有效时,我会这样做:

console.log(list);
var getTitle = list.HEADLINE;
var getSearch = list.SEARCH.ABILITY;
console.log(getSearch);
console.log(getTitle);

这是奇怪的地方。

  

'列表'返回我指定的JSON数组

     

获取HEADLINE返回Oh No!

     

但获取list.SEARCH.ABILITY会返回undefined

什么给了!?我没有尝试在真正嵌套的数组中访问我真正想要的东西" ABILITIES"

请记住,Angular Translate使用格式{{ 'ABILITIES.ADVISORY.TITLE' | translate }}将JSON输出到HTML页面

1 个答案:

答案 0 :(得分:-3)

尝试list.SEARCH["ABILITY"].value