网站搜索

angularjs - JSON 文件的严格数据类型


当我从 json 获取数据时,我首先创建一个类,并为 json 中的所有变量定义严格的数据类型,就像我的 json 文件一样

 {"fname":"Mark","lname":"jhony"}

所以在 Angular 中我这样创建类

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 中处理它的最佳方式是什么。

答案#1

通常你会使用接口来表示原始值的数据结构,例如:

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);

答案#2

这会有效。

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[];
}