2015-07-06 3 views
0

У меня есть этот код:переменной в Json Object - Javascript

function my_json_function(my_variable) { 
    var json_var = { 
     my_variable: [{ 
      "firstName": "John", 
      "lastName": "Doe" 
     }, { 
      "firstName": "Anna", 
      "lastName": "Smith" 
     }] 
    }; 

    return json_var; 
} 

Итак, проблема:

Я перехожу к функции переменной с именем my_variable, и я хочу, чтобы присвоить его имя группы json.

Итак, я объясню, что я имею в виду: Например, если my_variable = "employees" функция должна произвести следующий результат:

"employees":[ 
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"} 
] 

Я попытался литья, как это: String(my_variable), но вернуть меня в ошибка:

Uncaught SyntaxError: Unexpected token :

, где я не прав? спасибо

ответ

2

Смотрите комментарии встроенный в коде:

function my_json_function(my_variable) { 
    var json_var = { 
     peoples: [{ 
      "firstName": "John", 
      "lastName": "Doe" 
     }, { 
      "firstName": "Anna", 
      "lastName": "Smith" 
     }] 
    }; 

    var obj = {}; // Create empty object 
    obj[my_variable] = json_var.peoples; // Assign the data in the new key 

    return obj; // return newly created object 
} 
3

Вы должны будете использовать присваивание со скобками вместо:

var json_var = {}; 
json_var[my_variable] = [ 
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"} 
]; 

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

+1

Это не то, что он хочет, ему сначала нужно клонировать старые данные. – J261

+0

@ Vorge Что значит? –

+0

'Например, если my_variable =" сотрудники ", функция должна произвести следующий результат:' – Tushar

0

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

function my_json_function(my_variable) { 
    var json_var = {}; 
    json_var[my_variable] = [{ 
     "firstName": "John", 
     "lastName": "Doe" 
    }, { 
     "firstName": "Anna", 
     "lastName": "Smith" 
    }]; 

    return json_var; 
} 

Обратите внимание на использование json_var[my_variable] с помощью квадратных скобок. Это создаст свойство в объекте с передачей любой переменной.

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