Я пытаюсь собрать информацию из файла JSON в моем скрипте jQuery.

Вот мой код jQuery:

$.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 () .. и т.д.) безуспешно.

1
Tom Ice 26 Фев 2015 в 02:36

2 ответа

Лучший ответ

Вот что вам нужно. Это настолько "автоматический", насколько это возможно. Я читал, что использовать функцию eval() - не лучший вариант, но не знаю почему. Может быть, кто-то может прокомментировать этот ответ, объяснив причину.

 $.each(getSettings, function(key, value) {
       str = key+' = '+'getSettings.'+key;
       eval(str);
 });

 alert(slider.FadeInit);

Я не уверен, что это единственный способ сделать это, но, по крайней мере, он работает.

0
Alvaro Flaño Larrondo 26 Фев 2015 в 13:40

Когда у вас есть объект JSON, вы можете просто объявить:

 var slider = getSettings.slider
 var thumb = getSettings.thumb

И используйте значения по своему усмотрению.

0
Alvaro Flaño Larrondo 25 Фев 2015 в 23:56