动态命名JSON属性

Hel*_*ini 17 javascript json

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

我们假设我正在创建一个JSON对象,如下面的代码:

var DTO = { 'NewObject' : GetFormData() };  
var DTO = { 'UpdateObject' : GetFormData() };  
var DTO = { 'DelObject' : GetFormData() };  
Run Code Online (Sandbox Code Playgroud)

现在我一直在尝试动态命名JSON属性,因为有类似的东西'New' + ClassName(ClassName是一个带有字符串值的var),但它给了我一个语法错误.有没有办法做到这一点,成为:

var DTO = { 'New' + ClassName : GetFormData() };  
var DTO = { 'Update' + ClassName : GetFormData() };  
var DTO = { 'Delete' + ClassName : GetFormData() };  
Run Code Online (Sandbox Code Playgroud)

我非常感谢你的帮助.谢谢.

ins*_* me 35

这会满足你的需求吗?

var DTO = {}; DTO['New' + ClassName] = GetFormData();
Run Code Online (Sandbox Code Playgroud)


Dyl*_*ogg 15

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

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

var DTO = { ['New' + ClassName] : GetFormData() };
Run Code Online (Sandbox Code Playgroud)

更多信息:http : //es6-features.org/#ComputedPropertyNames


Que*_*tin 10

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

如果要将变量用作属性名称,则必须先创建对象,然后使用方括号表示法分配数据.

var foo = {};
var bar = 'baz';
foo[bar] = '123';
alert(foo.baz);
Run Code Online (Sandbox Code Playgroud)