2017-02-06 65 views
0

我想從以下響應模板創建一個模型/類我的角度應用:從JSON響應對象創建在角類

{ 
"id": {integer}, 
"name": {string}, 
"make": { 
     "id": {integer}, 
     "name": {string}, 
     "niceName": {string} 
}, 
"model": { 
    "id": {string}, 
    "name": {string}, 
    "niceName": {string} 
}, 
"year": { 
    "id": {integer}, 
    "year": {integer} 
}, 
"submodel": { 
    "body": {string}, 
    "fuel": {string}, // is not always populated 
    "tuner": {string}, // is not always populated 
    "modelName": {string}, 
    "niceName": {string} 
}, 
"trim": {string}, 
"states": {array}, 
"engine": {object}, 
"transmission": {object}, 
"options": [ 
    { 
    "category": {string}, 
    "options": {array} 
    } 
], 
"colors": [ 
    { 
    "category": {string}, 
    "options": {array} 
    } 
    ], 
"drivenWheels": {string}, 
"numOfDoors": {string}, 
"squishVins": {array}, 
"categories": {object}, 
"MPG": {object}, 
"manufacturerCode": {string}, 
"price": {object} 
} 

弄成這個樣子:

class SearchResult { 
id: number; 
name: string; 
make: { 
    id: number; 
    name: string; 
    niceName: string; 
}; 
model: { 
    id: number; 
    name: string; 
    niceName: string; 
}; 
year: { 
    id: number; 
    year: number; 
}; 

一些注意事項:

  1. 這些字段中的大部分對於「顏色」(內部和外部)以及「選擇」都有多個「對象/數據」離子(5個不同的類別) - 我如何建立一個可以處理不同數量顏色的「抽象」循環,以及其他等。

  2. 某些字段返回一個對象 - 我該如何處理?

  3. 以「model」爲例 - 它是一個有3個字段的對象,'make'和'submodel'類似。我將如何設置?

回答

2

您可以將這些對象變爲模型!

所以你給的例子看起來像:

import {Make, Model, Year} from "../my_models"; 

class SearchResult { 
id: number; 
name: string; 
make: Make; 
model: Model; 
year: Year; 

對於primatives的數組或對象的語法是:

import {Color} from "../my_models"; 

class SearchResult{ 
    ... 
    colors: Color[]; 
    options: string[]; 
    ... 
} 
+0

是的!那正是我應該做的!現在,我如何格式化我的模型? 這對我來說理論上是有意義的,但是我的模型會是怎樣的?我在哪裏可以將它放在文件結構中(按照慣例),您能否詳細說明您的代碼以便將其應用到我的項目中?非常感謝 – Moshe

+0

您將以與SearchResult類相同的方式定義模型,直到您只剩下主體爲止: – chrispy

+0

我明白您的意思了,現在我要創建模型文件,但是在哪裏?並且每個模型都必須在不同的文件中分開(我更喜歡這個)?我如何着手在我的主要「SearchResult」中有許多顏色對象? – Moshe