开发者

Dynamically name a JSON property

开发者 https://www.devze.com 2022-12-21 12:44 出处:网络
I\'ve been trying to create a dynamically named JSON property but I keep hitting on errors. Honestly Idon\'t know if this is possible to achieve with Javascript. Anyway here is my problem.

I've been trying to create a dynamically named JSON property but I keep hitting on errors. Honestly I don't know if this is possible to achieve with Javascript. Anyway here is my problem.

Let's suppose I'm creating a JSON object like the following code:

var DTO = { 'NewObject' : GetFormData() };  
var DTO = {开发者_StackOverflow 'UpdateObject' : GetFormData() };  
var DTO = { 'DelObject' : GetFormData() };  

Now what I've been trying to do is to dynamically name the JSON property because with something like 'New' + ClassName (ClassName being a var with a string value) but it gives me a syntax error. Is there a way to do this to become something like:

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

I really appreciate your help. Thanks.


Would this suit your needs ?

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


With ECMAScript 6, you can use computed property names in object property definitions.

For example, you can simply write:

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

More information: http://es6-features.org/#ComputedPropertyNames


This is just "an object". JSON is a serialization to a string, not an object type.

If you want to use a variable as a property name, then you must create an object first, then assign the data using square bracket notation.

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


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

精彩评论

暂无评论...
验证码 换一张
取 消