【问题标题】:Javascript Object notation with variable带有变量的 Javascript 对象表示法
【发布时间】:2010-11-23 11:07:45
【问题描述】:

我的 PHP 脚本 specs.php 输出以下内容:

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

【问题讨论】:

    标签: javascript object notation


    【解决方案1】:

    你不能在点表示法中使用变量,但你可以使用括号表示法:

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

    如果preset 包含字符串“medium”,则在功能上等同于:

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

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 2019-12-24
      • 2020-09-23
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      相关资源
      最近更新 更多