Javascript 动态命名JSON属性

Javascript 动态命名JSON属性,javascript,json,Javascript,Json,我一直在尝试创建一个动态命名的JSON属性,但我一直遇到错误。老实说,我不知道这是否可以用Javascript实现。无论如何,这是我的问题 假设我正在创建一个JSON对象,如下代码所示: var DTO = { 'NewObject' : GetFormData() }; var DTO = { 'UpdateObject' : GetFormData() }; var DTO = { 'DelObject' : GetFormData() }; 现在我一直在尝试动态命名JSON属

我一直在尝试创建一个动态命名的JSON属性,但我一直遇到错误。老实说,我不知道这是否可以用Javascript实现。无论如何,这是我的问题

假设我正在创建一个JSON对象,如下代码所示:

var DTO = { 'NewObject' : GetFormData() };  
var DTO = { 'UpdateObject' : GetFormData() };  
var DTO = { 'DelObject' : GetFormData() };  
现在我一直在尝试动态命名JSON属性,因为类似于
'New'+ClassName
ClassName
是一个带有字符串值的变量),但它给了我一个语法错误。有没有办法做到这一点,使之成为:

var DTO = { 'New' + ClassName : GetFormData() };  
var DTO = { 'Update' + ClassName : GetFormData() };  
var DTO = { 'Delete' + ClassName : GetFormData() };  
我真的很感谢你的帮助。谢谢

这只是一个“对象”。JSON是字符串的序列化,而不是对象类型

如果要使用变量作为属性名称,则必须首先创建对象,然后使用指定数据


这适合你的需要吗

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

使用ECMAScript 6,可以在对象特性定义中使用计算特性名称

例如,您可以简单地编写:

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

更多信息:

:)这太容易了。。。ThanksI试着做{someObj.getName:“myVal”},但JS抱怨。是的,支架可以工作。但是为什么呢?为什么要强迫我写难看的代码?这就是javascript,可惜的是在{}声明中没有一种方法来构造动态属性名。至少有这方面的工作,您可以创建帮助器或包装器使其通用。当属性名像Meteor事件一样复杂,并且您希望执行{'click#'+MY_ID:function(){}时,这一点最为明显。
var DTO = {}; DTO['New' + ClassName] = GetFormData();
var DTO = { ['New' + ClassName] : GetFormData() };