[英]Angular2 - Parse JSON into an Object
示例:我有一個名為“Person”的實體類
constructor(name:string,surname:string,birthdate:string) {
this.name = name;
this.surname = surname;
this.birthdate = birthdate;
}
在“Manager”類中,我得到一個看起來像JSON的字符串:
{
"name" : "testName",
"surname" : "testSurrname",
"birthdate" : "JJJJ:MM:DD hh:mm:ss"
}
那么如何將JSON解析為“Person”
personData : Person;
jsonData : JSON;
public toPerson(data: string): Person {
this.jsonData = JSON.parse(data);
.?
.?
.?
personData = new Person(....);
return personData;
}
public toPerson(data: string): Person {
let jsonData = JSON.parse(data);
personData = new Person(jsonData.name, jsonData.surname, jsonData.birthdate);
return personData;
}
一個更優雅的解決方案是使用JSON.parse
reviver:
public static fromJSON(json: any): Person {
if (typeof json === 'string') {
return JSON.parse(json, Person.reviver);
} else if (json !== undefined && json !== null) {
let person = Object.create(Person.prototype);
return Object.assign(person, json);
} else {
return json;
}
}
public static reviver(key: string, value: any): any {
return key === '' ? Person.fromJSON(value) : value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.