Ответ 1
Соответствует ли это вашим потребностям?
var DTO = {}; DTO['New' + ClassName] = GetFormData();
Я пытаюсь создать свойство JSON с динамическим именем, но я продолжаю сталкиваться с ошибками. Честно говоря, я не знаю, можно ли достичь этого с помощью Javascript. В любом случае, вот моя проблема.
Предположим, что я создаю объект JSON, например, следующий код:
var DTO = { 'NewObject' : GetFormData() };
var DTO = { 'UpdateObject' : GetFormData() };
var DTO = { 'DelObject' : GetFormData() };
Теперь то, что я пытался сделать, - это динамически назвать свойство JSON, потому что с чем-то вроде 'New' + ClassName
(ClassName
является var с строковым значением), но это дает мне синтаксическую ошибку. Есть ли способ сделать это, чтобы стать чем-то вроде:
var DTO = { 'New' + ClassName : GetFormData() };
var DTO = { 'Update' + ClassName : GetFormData() };
var DTO = { 'Delete' + ClassName : GetFormData() };
Я очень ценю вашу помощь. Благодарю.
Соответствует ли это вашим потребностям?
var DTO = {}; DTO['New' + ClassName] = GetFormData();
Это просто "объект". JSON является сериализацией строки, а не типа объекта.
Если вы хотите использовать переменную как имя свойства, сначала необходимо создать объект, а затем присвоить данные с помощью квадратных скобок нотации.
var foo = {};
var bar = 'baz';
foo[bar] = '123';
alert(foo.baz);
var DTO = Object();
DTO['New' + ClassName] = GetFormData();
С ECMAScript 6 вы можете использовать вычисленные имена свойств в определениях свойств объекта.
Например, вы можете просто написать:
var DTO = { ['New' + ClassName] : GetFormData() };
Дополнительная информация: http://es6-features.org/#ComputedPropertyNames