JSON获取对象索引

时间:2015-12-09 13:17:18

标签: javascript json

我有这个json文件(data.json):

{
  "country":[{
    "Russia":[
      "Voronezh",
      "Moscow",
      "Vorkuta"
  ],
    "United Kingdom":[
      "London"
  ]
  }],
  "countryCodes":[
    "ru",
    "uk"
  ]
}

和这样的代码:

$.getJSON('data.json', function success(data){
  alert(data.country[0]);
});

这返回“未定义”。但我想得到“俄罗斯”,并有索引对象俄罗斯,我想得到“沃罗涅日”,不要使用“data.country.Russia”。

抱歉我的英文。

2 个答案:

答案 0 :(得分:2)

如果我是你,我会重构JSON看起来像这样:

var data = {
    "countries": [
        {
            "name": "Russia",
            "cities": [
                "Voronezh",
                "Moscow",
                "Vorkuta"
            ]
        }, 
        {
            "name": "United Kingdom",
            "cities": [
                "London"
            ]
        }
    ],
    "countryCodes": [
        "ru",
        "uk"
    ]
}

data.countries[0].name; //Russia
data.countries[0].cities[0]; //Voronezh

答案 1 :(得分:1)

在他使用点符号的地方添加ArgOn的答案,还有一种方法可以获得答案,即使用方括号

var option = "countries";  (assign value to a variable)
data[option][0]["name"]; //Russia
data[option][0]["cities"][0]; //Voronezh
  • 点符号编写速度更快,阅读更清晰。
  • 方括号表示法允许访问包含特殊字符的属性以及使用变量选择属性。