我希望能够将JSON带入我的程序,然后根据该数据创建对象。所以,我想创建一个对象,其中该对象的名称是存储在键值对中的值。例如,如果我有以下JSON(我知道这不是完美的JSON):
{
"objectName" : "**variableName**",
"someDataName" : "thatData",
"someOtherDataName" : "thisData"
}
然后我希望能够创建一个这样的对象:
function myObject(thatData, thisData) {
this.name = name;
this.thatData = thatData;
}
var **variableName** = new myObject(thatData, thisData);
这里的关键是我希望能够使用ObjectName键值对中存储的值作为对象的变量名。这甚至可能吗?我一直在寻找如何做这一段时间。我认为这与"Variable" variables in Javascript?不同,因为我试图使用键值对中的值来命名我的对象。
答案 0 :(得分:2)
如果我理解你在这里尝试做什么,一种方法可能是在变量中设置属性:
let myContainer = {};
// ...
myContainer['whatever_variable_name'] = new ...
您可以使用myContainer.whatever_variable_name
或myContainer['whatever_variable_name']
来访问新对象。
要从JSON对象分配属性,请参阅Object.assign。
答案 1 :(得分:0)
您可以使用property accessor对象上的window为全局范围设置动态密钥的值。
var window["**variableName**"] = new myObject(thatData, thisData);