2014-02-11 3 views
6

Я использую stringify в моем узле успокоительного сервере для предоставления данных:использовать переменный в JSON.stringify

answer = JSON.stringify({activities: result}, null, '\t'); 
return answer 

, где результат является объектом JS; я получить правильный вывод для этого:

{ 
"activities": [ 
    { 
    "id": 1, 
    "title": aaa 
    }, 
    { 
    "id": 2, 
    "title": bbb 
    } 
    ] 
} 

, но теперь я хотел бы использовать переменную вместо фиксированной строки в левой части stringify функции; что-то вроде:

var name = "activities"; 
answer = JSON.stringify({name: result}, null, '\t'); 

это не работает, потому что имя становится фиксированной строкой в ​​строковом объекте

ответ

13

Вам необходимо создать объект, используя индексатор обозначение:

var name = ...; 
var obj = {}; 
obj[name] = something; 
+0

Идеальное решение, спасибо –

+1

С ES6, вы можете сделать это внутри объекта буквального задания, как '{[имя]: что-то}' –

4

Вы можете использовать new с анонимной функцией для этого:

answer = JSON.stringify(new function(){ this[name] = result; }, null, '\t'); 
0

Если yo и хотите JSON.stringify() объект, попробуйте следующее:

var field = "my_field_name"; 

var obj = {}; 

obj[field] = value; 

var myJSON = JSON.stringify(obj); 

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

  • Нет связанных вопросов^_^