代码之家  ›  专栏  ›  技术社区  ›  Uahmed

json文件的严格数据类型

  •  1
  • Uahmed  · 技术社区  · 7 年前

    我对angularjs很陌生。当我从json中获取数据时,我首先创建一个类并定义json中获得的所有变量,这些变量都是严格的数据类型,就像我的json文件一样

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

    所以我把课堂变成这样

    export class user{
    
     fname: string;
     lname : string;
    }
    

    {"fname":"Mark","lname":"jhony",
     "parcels":[
       {
        "parcelId":123,
        "parcelName :"asd",
        "parcelItems:[
           { 
            "itemId":2,
            "itemName":"perfume"
           },
           { 
             "itemId":4,
             "itemName":"soap"
           }
         ]
    ]}
    

    我试图在类中添加数组,但没有得到在angularjs中处理它的最佳方法。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Explosion Pills    7 年前

    通常,您会使用接口来表示基元值的数据结构,例如:

    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
  •  0
  •   Ntwobike    7 年前

    这样就行了。

    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[];
    }
    
    推荐文章