Angularjs json文件的严格数据类型
我对angularjs是新手。当我从json中获取数据时,我首先创建一个类,并定义json中的所有变量,以获得严格的数据类型,就像我的json文件一样Angularjs json文件的严格数据类型,angularjs,json,typescript,Angularjs,Json,Typescript,我对angularjs是新手。当我从json中获取数据时,我首先创建一个类,并定义json中的所有变量,以获得严格的数据类型,就像我的json文件一样 {"fname":"Mark","lname":"jhony"} 所以在我的课堂上是这样的 export class user{ fname: string; lname : string; } 我不知道如何为下面的json数据创建类 {"fname":"Mark","lname":"jhony", "parcels":[ {
{"fname":"Mark","lname":"jhony"}
所以在我的课堂上是这样的
export class user{
fname: string;
lname : string;
}
我不知道如何为下面的json数据创建类
{"fname":"Mark","lname":"jhony",
"parcels":[
{
"parcelId":123,
"parcelName :"asd",
"parcelItems:[
{
"itemId":2,
"itemName":"perfume"
},
{
"itemId":4,
"itemName":"soap"
}
]
]}
我试图在类中添加数组,但没有得到在angularjs中处理它的最佳方法。通常,您会使用接口来表示基本值的数据结构,例如:
interface ParcelItem {
itemId: number;
itemName: string;
}
interface Parcel {
parcelId: number;
parcelName: string;
parcelItems: ParcelItem[];
}
interface User {
fname: string;
lname: string;
Parcels: Parcel[];
}
根据获取和解析JSON的方式,可以指定要使用的接口。最简单的例子是:
const user = JSON.parse(userJson) as User;
如果您想使用一个类(可能用于关联的数据操作方法),则必须使用构造函数实例化该类。这可能看起来像:
const userValues = JSON.parse(userJson);
const user = new User(userValues);
这会奏效的
export interface ParcelItemType {
itemId: number;
itemName: string;
}
export interface ParcelType {
parcelId: number;
parcelName: string;
parcelItems: ParcelItemType[];
}
export interface YourType {
fname: string;
lname: string;
parcels: ParcelType[];
}
需要注意的重要事项:这不会以任何方式验证JSON。这意味着稍后可能会出现运行时错误,例如,
lname
未定义。键入仅验证TypeScript代码在编译时是否与其自身一致。对运行时一无所知。作为一名TypeScript新手,我必须让一位同事向我解释这一点,直到我明白在这个模式中没有验证。他还提到,人们使用一些其他工具来指定JSON,然后生成TypeScript类型。下面是一个问题,其中有几个答案,说明如果还需要运行时验证,应该怎么做:还有一个问题: