在Javascript中使用变量的字符串作为JSON的属性名?

Ben*_*son 4 javascript string variables

所以我通过AJAX抓取一个JSON,但需要重新配置它.部分原因是使用变量中包含的字符串作为嵌套对象的属性名称.

但Javascript不允许这样做.它将变量视为文字字符串,而不是读取值.

这是一个片段:

var pvm.exerciseList = [];

$.get('folder_get.php', function(data){
    var theList = $.parseJSON(data);
    $.each(theList, function(parentFolder, files) {
        var fileList = [];
        $.each(files, function(url, name) {
            thisGuy.push({fileURL: url, fileName: name});
        });
        pvm.exerciseList.push({parentFolder: fileList});
    });
});
Run Code Online (Sandbox Code Playgroud)

有没有办法解决?我需要提取"parentFolder"中包含的字符串.现在,JS只是从字面上解释它.

Mic*_*ski 9

使用[]语法将变量解析为属性名称.这可能需要一个中间人{}:

$.get('folder_get.php', function(data){
    var theList = $.parseJSON(data);
    $.each(theList, function(parentFolder, files) {
        var fileList = [];
        $.each(files, function(url, name) {
            thisGuy.push({fileURL: url, fileName: name});
        });

        // Make an object    
        var tmpObj = {};
        // And give it a property with the current value of parentFolder
        tmpObj[parentFolder] = fileList;
        // Then push it onto the array
        pvm.exerciseList.push(tmpObj);
    });
});
Run Code Online (Sandbox Code Playgroud)