@@ -96,6 +96,20 @@ deserialize(json: any, type: any)
96
96
// Import decorators from library
97
97
import { Serializable , JsonProperty } from ' ./../../src' ;
98
98
99
+ // Enums
100
+ export enum Gender {
101
+ female ,
102
+ male ,
103
+ other
104
+ }
105
+
106
+ export enum Status {
107
+ alive = ' Alive' ,
108
+ sick = ' Sick' ,
109
+ deadAndAlive = ' Dead and alive' ,
110
+ dead = ' Dead'
111
+ }
112
+
99
113
100
114
// Create a serializable class: Employee
101
115
@@ -111,8 +125,10 @@ export class Employee {
111
125
public birthdate: Date ;
112
126
@JsonProperty ()
113
127
public email: string ;
128
+
129
+ // Enum value (number)
114
130
@JsonProperty ()
115
- public gender: string ;
131
+ public gender: Gender ;
116
132
117
133
public constructor () { }
118
134
@@ -133,7 +149,11 @@ export class Animal {
133
149
@JsonProperty ()
134
150
public numberOfPaws: number ;
135
151
@JsonProperty ()
136
- public gender: string ;
152
+ public gender: Gender ;
153
+
154
+ // Enum value (string)
155
+ @JsonProperty ()
156
+ public status: Status ;
137
157
138
158
// Specify the property name of json property if needed
139
159
@JsonProperty (' childrenIdentifiers' )
@@ -205,7 +225,7 @@ export class Zoo {
205
225
206
226
``` typescript
207
227
// data.ts
208
- export const json : any = {
228
+ export const data : any = {
209
229
' id' : 15 ,
210
230
' name' : ' The Greatest Zoo' ,
211
231
' city' : ' Bordeaux' ,
@@ -215,36 +235,36 @@ export const json: any = {
215
235
' name' : ' Bob Razowsky' ,
216
236
' birthdate' : ' 1984-04-03T22:00:00.000Z' ,
217
237
' email' : ' bob.razowsky@tgzoo.fr' ,
218
- ' gender' : ' male '
238
+ ' gender' : 1
219
239
},
220
240
' employees' : [
221
241
{
222
242
' id' : 1 ,
223
243
' name' : ' Bob Razowsky' ,
224
244
' birthdate' : ' 1984-04-03T22:00:00.000Z' ,
225
245
' email' : ' bob.razowsky@tgzoo.fr' ,
226
- ' gender' : ' male '
246
+ ' gender' : 1
227
247
},
228
248
{
229
249
' id' : 2 ,
230
250
' name' : ' Mikasa Ackerman' ,
231
251
' birthdate' : ' 1984-01-11T22:00:00.000Z' ,
232
252
' email' : ' mikasa.ackerman@tgzoo.fr' ,
233
- ' gender' : ' female '
253
+ ' gender' : 0
234
254
},
235
255
{
236
256
' id' : 3 ,
237
257
' name' : ' Red Redington' ,
238
258
' birthdate' : ' 1970-12-04T22:00:00.000Z' ,
239
259
' email' : ' red.redington@tgzoo.fr' ,
240
- ' gender' : ' male '
260
+ ' gender' : 1
241
261
},
242
262
{
243
263
' id' : 4 ,
244
264
' name' : ' Fried Richter' ,
245
265
' birthdate' : ' 1994-04-01T22:00:00.000Z' ,
246
266
' email' : ' fried.richter@tgzoo.fr' ,
247
- ' gender' : ' male '
267
+ ' gender' : 1
248
268
}
249
269
],
250
270
' Panthers' : [
@@ -253,31 +273,34 @@ export const json: any = {
253
273
' name' : ' Bagheera' ,
254
274
' birthdate' : ' 2010-01-11T22:00:00.000Z' ,
255
275
' numberOfPaws' : 4 ,
256
- ' gender' : ' male ' ,
276
+ ' gender' : 1 ,
257
277
' childrenIdentifiers' : [
258
278
2 ,
259
279
3
260
280
],
261
281
' color' : ' black' ,
262
- ' isSpeckled' : false
282
+ ' isSpeckled' : false ,
283
+ ' status' : ' Sick'
263
284
},
264
285
{
265
286
' id' : 2 ,
266
287
' name' : ' Jolene' ,
267
288
' birthdate' : ' 2017-03-10T22:00:00.000Z' ,
268
289
' numberOfPaws' : 4 ,
269
- ' gender' : ' female ' ,
290
+ ' gender' : 0 ,
270
291
' color' : ' blond' ,
271
- ' isSpeckled' : true
292
+ ' isSpeckled' : true ,
293
+ ' status' : ' Alive'
272
294
},
273
295
{
274
296
' id' : 3 ,
275
- ' name' : ' Chatchat ' ,
297
+ ' name' : ' Schrodinger ' ,
276
298
' birthdate' : ' 2015-03-05T22:00:00.000Z' ,
277
299
' numberOfPaws' : 4 ,
278
- ' gender' : ' female ' ,
300
+ ' gender' : 1 ,
279
301
' color' : ' brown' ,
280
- ' isSpeckled' : false
302
+ ' isSpeckled' : false ,
303
+ ' status' : ' Dead and alive'
281
304
}
282
305
]
283
306
};
0 commit comments