Использование строки из переменной в качестве имени свойства для JSON в Javascript? - PullRequest
4 голосов
/ 08 марта 2012

Итак, я получаю JSON через AJAX, но мне нужно перенастроить его. Частично это означает использование строки, содержащейся в переменной, в качестве имени свойства вложенного объекта.

Но 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});
    });
});

Есть ли что-нибудь вокруг этого? Мне нужно извлечь строку, содержащуюся в "parentFolder". Прямо сейчас JS просто интерпретирует это буквально.

1 Ответ

9 голосов
/ 08 марта 2012

Используйте синтаксис [] для разрешения переменной в качестве имени свойства.Для этого может потребоваться посредник {}:

$.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);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...