2010-11-23 22 views
3

Mon script PHP specs.php produit les éléments suivants:Javascript Object Notation avec la variable

{ 
    "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" 
} 

Avec jQuery je charge dans le JSON et lui attribuer à specs_obj
je peux accéder à la « moyenne » « du premier élément de tailles "avec specs_obj. medium.sizes [0]
Comment utiliser une variable dans la notation par points?

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

Répondre

8

Vous ne pouvez pas utiliser une variable dans la notation de points, mais vous pouvez utiliser la notation des parenthèses:

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

Si preset contient la chaîne "moyenne", qui est fonctionnellement identique à:

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

Parfait! À votre santé – FFish