2014-02-11 54 views
6

我字符串化使用我的節點寧靜服務器提供數據:使用變量在JSON.stringify

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

其中結果是一個js對象; 我接收到正確的輸出爲這樣:

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

,但現在我想用的,而不是在字符串化函數的左側部分的固定字符串的變量;是這樣的:

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

如果喲ü要JSON.stringify()對象,然後試試這個:

var field = "my_field_name"; 

var obj = {}; 

obj[field] = value; 

var myJSON = JSON.stringify(obj);