在两个jquery数组中转换一个JSON数组
我试图从jQuery脚本中的JSON文件中收集信息 以下是我的jQuery代码:在两个jquery数组中转换一个JSON数组,jquery,arrays,ajax,json,Jquery,Arrays,Ajax,Json,我试图从jQuery脚本中的JSON文件中收集信息 以下是我的jQuery代码: $.ajax({ type: "GET", url: "settings.json", dataType: "json", cache: false, error: function(){ $('.slideMe').css("display", "none"); }, success: function(getSettings){
$.ajax({
type: "GET",
url: "settings.json",
dataType: "json",
cache: false,
error: function(){
$('.slideMe').css("display", "none");
},
success: function(getSettings){
// My code..
}
});
以下是我的JSON:
{
"slider": {
"Nb": "6",
"Height": "390px",
"Width": "full",
"FadeInit": "1000",
"ChangeTime": "10000",
"FadeInTime": "550",
"FadeOutTime": "850"
},
"thumb": {
"Mode": "preview",
"Background": "#00000",
"Color": "grey",
"Height": "70",
"Width": "152",
"Opacity": "0.4",
"FadeTime": "50"
}
}
我希望使用如下值:
alert(slider.FadeInit);
但用我的代码,我必须写:
alert(getSettings.slider.FadeInit);
我尝试了很多解决方案($.each()..$.makeArray()..等),但都没有成功。一旦拥有了JSON对象,就可以简单地声明:
var slider = getSettings.slider
var thumb = getSettings.thumb
并根据需要使用这些值 这是你想要的。这是“自动”的。我读过,使用
eval()
函数不是一个好的选择,但我不知道为什么。也许有人可以评论这个答案,解释原因
$.each(getSettings, function(key, value) {
str = key+' = '+'getSettings.'+key;
eval(str);
});
alert(slider.FadeInit);
我不确定这是否是唯一的方法,但至少它是有效的。我认为这是一个解决方案,但将来我会有更多的JSON对象(slider、thumb、object3、object4等),使用这个解决方案,我每次添加对象时都必须声明。。我正在寻找一个“自动”解决方案。但你的答案是一个很好的解决方案。非常感谢。“自动”解决方案是什么意思?如果我在Json中添加了更多的对象,我不想每次都在jquery代码中声明" .. 例如,我想使用
thumb.x
或settings.y
而不声明var thumb=getSettings.thumb
和var settings=getSettings.settings
我发布的另一个答案就是这样做的。