我在javascript中从服务器获得了这个Json数据
var mydata = JSON.parse('["X","Y","Z"]');
下面我在javascript中有以下数据模型..
var mySchemasList = {
schemas: [new SelectSchemaModel("A", false),
new SelectSchemaModel("B", false),
new SelectSchemaModel("C", false)
]
};
我想通过从mydata获取数据('A','B','C')来动态创建此模型。
真心感谢任何帮助。
由于
答案 0 :(得分:1)
你不能只做以下事情吗?
var i
var mySchemaList = {schemas:[]};
for (i = 0; i < mydata.length; i++) {
mySchemaList.schemas.push( new SelectSchemaModel(mydata[i], false) );
}
答案 1 :(得分:1)
在javascript中,使用.
或[]
运算符访问对象和数组。以下两行完全相同:
mySchemasList.schemas;
mySchemasList['schemas'];
此外,对象或数组的每个成员本身就像一个变量。因此,您可以为它们分配值,对象或数组:
mySchemasList = {};
当声明变量(或属性)但未赋值时,其值为undefined
。所以你可以简单地检查:
if (mySchemasList === undefined) mySchemasList = {};
或者,您可以使用||
短路,因为undefined
被视为错误:
mySchemasList = mySchemasList || {};
总而言之,以下两个例子完全相同。
示例1:
var mySchemasList = {
schemas : []
}
示例2:
var mySchemasList = {};
mySchemasList.schemas = [];
现在您已经在mySchemasList.schemas
创建了一个数组,您可以开始将其他对象推入其中:
mySchemasList.schemas.push(new SelectSchemaModel("A", false));
mySchemasList.schemas.push(new SelectSchemaModel("B", false));
mySchemasList.schemas.push(new SelectSchemaModel("C", false));
将它解析为解析JSON数据的for循环,你可以这样做:
var mydata = JSON.parse(ajax.responseText);
for (var i=0; i<mydata.length; i++) {
mySchemasList.schemas.push(new SelectSchemaModel(mydata[i],false));
}