类定义:
export class PersonalInformation {
public name: string;
public age: number;
public nationality: string;
public gender: string;
public height: number;
public constructor(name: string, age: number, nationality: string, gender: string, height: number) {
this.name = name;
this.age = age;
this.nationality = nationality;
this.gender = gender;
this.height = height;
}
}
1、Class转JsonString
使用JSON.stringify
private personalInformation: PersonalInformation;
private personalInformations: PersonalInformation[] = [];
start() {
this.class2json();
}
private class2json(){
this.personalInformation = new PersonalInformation(
"张三", 20, "中国", "男", 170
);
this.personalInformations.push(
new PersonalInformation("张三", 20, "中国", "男", 170),
new PersonalInformation("李四", 22, "中国", "男", 178),
new PersonalInformation("李丽", 22, "中国", "女", 162)
);
console.log(JSON.stringify(this.personalInformation));
console.log(JSON.stringify(this.personalInformations));
}
结果:
{"name":"张三","age":20,"nationality":"中国","gender":"男","height":170}
[{"name":"张三","age":20,"nationality":"中国","gender":"男","height":170},{"name":"李四","age":22,"nationality":"中国","gender":"男","height":178},{"name":"李丽","age":22,"nationality":"中国","gender":"女","height":162}]
2、JsonString转Class
2.1 class
protected start(): void {
this.json2class();
}
private json2class(){
let result = JSON.parse(this.personalInformation) as PersonalInformation;
console.log(result.name);
console.log(result.age);
console.log(result.nationality);
console.log(result.gender);
console.log(result.age);
}
结果:
2.2 array
private personalInformations: string = "[{\"name\":\"张三\",\"age\":20,\"nationality\":\"中国\",\"gender\":\"男\",\"height\":170},{\"name\":\"李四\",\"age\":22,\"nationality\":\"中国\",\"gender\":\"男\",\"height\":178},{\"name\":\"李丽\",\"age\":22,\"nationality\":\"中国\",\"gender\":\"女\",\"height\":162}]";
protected start(): void {
this.json2class();
}
private json2class() {
let result = JSON.parse(this.personalInformations) as PersonalInformation[];
let inf = "";
for (let i = 0; i < result.length; i++) {
inf = `个人信息 ${i + 1}: \n name: ${result[i].name}; age: ${result[i].age}; nationality: ${result[i].nationality}; gender: ${result[i].gender}; height: ${result[i].height}; `
console.log(inf);
}
}
结果: