2010-02-23 79 views
11

我一直在試圖創建一個動態命名的JSON屬性,但我一直打錯誤。老實說,我不知道這是否可以用Javascript來實現。無論如何,這是我的問題。動態命名一個JSON屬性

讓我們假設我創建類似下面的代碼一個JSON對象:

var DTO = { 'NewObject' : GetFormData() }; 
var DTO = { 'UpdateObject' : GetFormData() }; 
var DTO = { 'DelObject' : GetFormData() }; 

現在我一直在試圖做的是因爲有像'New' + ClassName動態命名JSON屬性(ClassName是一個VAR與字符串值),但它給我一個語法錯誤。有沒有辦法做到這一點:

var DTO = { 'New' + ClassName : GetFormData() }; 
var DTO = { 'Update' + ClassName : GetFormData() }; 
var DTO = { 'Delete' + ClassName : GetFormData() }; 

我真的很感謝您的幫助。謝謝。

回答

25

這會滿足您的需求?

var DTO = {}; DTO['New' + ClassName] = GetFormData(); 
+0

感謝您的回答。 – 2010-02-23 14:01:41

+0

不客氣。 – 2010-02-24 16:08:54

+0

:)這很容易...謝謝 – Ahsan 2013-07-19 07:18:51

9

這只是「一個對象」。 JSON是對字符串的序列化,而不是對象類型。

如果要將變量用作屬性名稱,則必須先創建對象,然後使用square bracket notation分配數據。

var foo = {}; 
var bar = 'baz'; 
foo[bar] = '123'; 
alert(foo.baz); 
+0

感謝您的回答。 – 2010-02-23 14:00:48

3
var DTO = Object(); 
DTO['New' + ClassName] = GetFormData(); 
+0

感謝您的回答 – 2010-02-23 14:01:07