如何通过使用jQuery指定变量来在JSON中查找值

时间:2014-01-08 15:07:05

标签: javascript jquery json

我有这个简单的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值未定义。有什么不对,有可能这样做吗?

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];