我有json:
var obj = '{"Form":[],"Provider":[]}';
我用可变值推送数据来制作动态对象:
var pName = 'Tester';
var data = {
pName :["testing"]
};
console.log(obj['Provider'].push(data));
但是,这会将pName添加为变量名,但不是 Tester 的变量值,我尝试使用+ pName +也无效。
返回:
{"Form":[],"Provider":[{"pName":["Testing"]}]}
任何帮助都将不胜感激。
答案 0 :(得分:2)
您必须在属性名称附近使用[]
语法。它将评估[]
中的表达式并返回值。
请参阅示例。data's
属性的名称为'Tester'
。
var obj = {"Form":[],"Provider":[]};
var pName = 'Tester';
var data = {
[pName] :["testing"]
};
console.log(data.pName); // undefined
console.log(data.Tester); // OK
obj['Provider'].push(data);
console.log(obj);