Typescript 类型脚本转换json数组
我有如下JSON数组:Typescript 类型脚本转换json数组,typescript,Typescript,我有如下JSON数组: var json = [{ id: 1, login: "Mieszko", name: "Misztal", surname: "Adminek", phone: "0413414", role: 2 }, { id: 2,
var json = [{
id: 1,
login: "Mieszko",
name: "Misztal",
surname: "Adminek",
phone: "0413414",
role: 2
},
{
id: 2,
login: "Rafal",
name: "Robak",
surname: "Kierowczek",
phone: "5145145",
role: 1
}
];
export class User extends BaseModel {
id: number;
login: string;
name: string;
surname: string;
phone: string;
roles: Roles;
admin: boolean;
driver: boolean;
isDriver(): boolean {
return this.roles === 1;
}
//other methods
}
我还创建了用户类,如下所示:
var json = [{
id: 1,
login: "Mieszko",
name: "Misztal",
surname: "Adminek",
phone: "0413414",
role: 2
},
{
id: 2,
login: "Rafal",
name: "Robak",
surname: "Kierowczek",
phone: "5145145",
role: 1
}
];
export class User extends BaseModel {
id: number;
login: string;
name: string;
surname: string;
phone: string;
roles: Roles;
admin: boolean;
driver: boolean;
isDriver(): boolean {
return this.roles === 1;
}
//other methods
}
我的计划是将输入JSON数组转换为用户数组。在JSON中,我将角色设置为整数。我的类中有admin和driver布尔字段。这在ngModel中是复选框所必需的
现在问题出在这条线之后
var users: Array<User> = JSON.parse(JSON.stringify(json));
var用户:Array=JSON.parse(JSON.stringify(JSON));
我无法从用户类调用方法,例如users[0].isDriver()
,因为编译器无法识别isDriver()方法
有人知道如何解决这个问题吗?TypeScript类型断言 TypeScript允许您以任何方式覆盖其推断和分析的类型视图。这是通过一种称为“类型断言”的机制完成的 类型断言有两种形式。一种是“尖括号”语法: 回答这个问题 在您的例子中,问题不是类型断言。您正在尝试将一组普通JSON对象分配给users变量,然后尝试调用对象上不存在的方法(users[0]。ISDRIVE未定义) 您不能简单地将普通对象强制转换为JavaScript/TypeScript类实例。您必须首先实例化一个用户。有许多技术可以实现这一点,通常涉及到复制数据 有关将JSON“强制转换”到TS类实例的示例解决方案,请参见以下答案之一:
这个数组怎么会是JSON数组???它要么是数组,要么是JSON格式的数据。对我来说,这看起来非常像一个数组,不管你称它为什么变量。。。