2010-11-23 2 views
3

Мой PHP скрипт specs.php выводит следующее:Javascript обозначения объекта с переменной

{ 
    "hd": { 
     "dimensions": [ 
      "1920x1080", 
      "1920x1080", 
      "1920x1080" 
     ], 
     "sizes": [ 
      "603 KB", 
      "265 KB", 
      "438 KB" 
     ] 
    }, 
    "medium": { 
     "dimensions": [ 
      "800x530", 
      "800x530", 
      "800x530" 
     ], 
     "sizes": [ 
      "198 KB", 
      "105 KB", 
      "152 KB" 
     ] 
    }, 
    "status": "success" 
} 

С JQuery я загружаю в JSON и назначить его specs_obj
я могу получить доступ к первому элемента «среды», «размеры "с specs_obj. medium.sizes [0]
Как использовать переменную в точечной нотации?

var specs_obj; 
$.post("specs.php", {}, 
    function(data) { 
     if (data.status == "success") { 
       specs_obj = data; 
       writeSizes("medium"); 
     } else {} 
    }, "json" 
); 

function writeSizes(preset) { 
    // test get medium dimensions from first file 
    var size = specs_obj. medium.sizes[0]; 
    // var size = specs_obj.preset.sizes[0]; 
} 

ответ

8

Вы не можете использовать переменную в точечной нотации, но вы можете использовать скобки обозначения:

var size = specs_obj[preset].sizes[0]; 

Если preset содержит строку «носитель», это функционально идентичны:

var size = specs_obj.medium.sizes[0]; 
+0

Отлично! ура – FFish 2010-11-23 11:21:37

Смежные вопросы