我有这个简单的JSON
{"places" : {
"home" : {
"1": "red"
}
}}
我需要得到1
值取决于某个变量,这是我的身体类。身体类是可变的。所以这是我的剧本:
(function(){
var bodyClass = $('body').attr('class');
function getPlaceValue(){
return $.getJSON('data.json', function(data) {
var placeValue;
placeValue = data.places.bodyClass.1;
return placeValue;
});
}
getPlaceValue().done(function(placeValue){
console.log(placeValue);
});
}).call(this);
我已回复1
值未定义。有什么不对,有可能这样做吗?
答案 0 :(得分:2)
您将bodyClass
定义为变量:
var bodyClass = $('body').attr('class');
...但是然后尝试阅读文字bodyClass
属性,当然不存在:
placeValue = data.places.bodyClass.1;
此外,you cannot use the dot syntax to access the 1
property:
对象属性名称可以是任何有效的JavaScript字符串,或 任何可以转换为字符串的东西,包括空字符串 串。但是,任何不是有效JavaScript的属性名称 标识符(例如,具有空格或连字符的属性名称, 或者以数字开头)只能使用正方形访问 括号表示法。属性时,这种表示法也非常有用 名称将动态确定(当属性名称不是时 确定到运行时间)
我想你的意思是:
placeValue = data.places[bodyClass][1];