Javascript 如何通过jQuery指定变量在JSON中查找值
我有一个简单的JSONJavascript 如何通过jQuery指定变量在JSON中查找值,javascript,jquery,json,Javascript,Jquery,Json,我有一个简单的JSON {"places" : { "home" : { "1": "red" } }} 我需要得到1值,该值取决于某个变量,该变量是我的body类。身体等级是可变的。这是我的剧本: (function(){ var bodyClass = $('body').attr('class'); function getPlaceValue(){ return $.getJSON('data.json', fun
{"places" : {
"home" : {
"1": "red"
}
}}
我需要得到1
值,该值取决于某个变量,该变量是我的body类。身体等级是可变的。这是我的剧本:
(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
值未定义。出了什么问题,有可能这样做吗?您将bodyClass
定义为变量:
var bodyClass = $('body').attr('class');
。。。但是,请尝试读取literalbodyClass
属性,该属性当然不存在:
placeValue = data.places.bodyClass.1;
此外:
对象属性名称可以是任何有效的JavaScript字符串,或
可以转换为字符串的任何内容,包括空字符串
一串但是,任何不是有效JavaScript的属性名称
标识符(例如,具有空格或连字符的属性名称,
或以数字开头)只能使用正方形访问
括号符号。当属性为
名称是动态确定的(当属性名称不是
直到运行时才确定)
我想你的意思是:
placeValue = data.places[bodyClass][1];
数据。放置[bodyClass][1]
。而且我认为你不能返回placeValue代码>从回调内部..getjson是非阻塞的。它将在ajax调用有机会走出大门或产生任何结果之前立即返回。您的返回位置值
将无处可返回。此外,可能存在重复,[1]
,而不是.1
:-p将有未定义的1
@RocketHazmat-正确,很抱歉忽略此内容。我添加了适当的引用。如何将浏览器作为值而不是对象获取?现在从data.places[bodyClass]
我有一个object@Lukas-是,data.places[bodyClass][1]
是字符串,data.places[bodyClass]
是对象。你希望它是什么?