module NameSpacens{
interface Serializable<T> {
deserialize(input: Object): T;
}
export class Class1 implements Serializable<Class1>{
private prop1: number;
private prop2:string;
constructor(va1?:number, va2?:string){
this.prop1 = va1;
this.prop2 = va2;
}
deserialize(jsonData){
if (!(Array.isArray(jsonData))) {
this.Index = jsonData.index;
this.HeaderName = jsonData.headerName;
this.SortName = jsonData.sortName;
this.AllowSorting = jsonData.allowSorting;
return this;
}
else {
//How to code this portion to create list?
}
}
}
}
var jsonDatas = [{ prop1: 1, prop2: "Test1"}, { prop1: 2, prop2: "Test2" }];
var coll:Array<NameSpacens.Class1> = new NameSpacens.Class1().deserialize(jsonDatas);
for coll我在编译期间遇到错误。
类型'Class1'不能分配给'Class1 []'类型。 'Class1'类型中缺少属性'length'。
另外我如何从JSON对象数组创建列表,在本例中为jsonDatas?
答案 0 :(得分:1)
没有必要在初始化对象的类中有一个函数,这是构造函数的用途。
相反,您可以迭代 jsonDatas 数组并为每个数组创建一个新的类实例。
您可以通过地图电话轻松完成此操作。
module NameSpacens{
export class Class1 {
constructor(private prop1?:number, private prop2?:string){
}
}
}
var jsonDatas = [{ prop1: 1, prop2: "Test1"}, { prop1: 2, prop2: "Test2" }];
var coll:Array<NameSpacens.Class1> = jsonDatas.map((data) => new NameSpacens.Class1(data.prop1, data.prop2));