json - 使用 json2typescript 进行 Angular 2+ 反序列化
问题描述
我正在使用 Json2Typescript 序列化和序列化 typescript 对象。问题是我无法反序列化从后端收到的 JSON 数据。
这是我的打字稿课:
@JsonObject('Respondent')
export class Respondent {
@JsonProperty('id',Number)
Id:number;
video:string;
@JsonProperty('synchro_id',Number)
SynchroId:string;
@JsonProperty('language',String)
Language:string;
@JsonProperty('project_id',Number)
ProjectId:number;
@JsonProperty('terminal_id',Number)
TerminalId:number;
@JsonProperty('questionnaire_id',Number)
QuestionnaireId: number;
@JsonProperty('device_type_id',Number)
DeviceTypeId:string;
// TODO: This is to be removed
medias: Media[] = null;
// TODO: This is to be removed
clicks: Click[] = null;
@JsonProperty('email_status',String)
emailStatus:string;
@JsonProperty('inserted_local_time',String)
insertedTime:string;
@JsonProperty('responses',[Answer])
Answers:Answer[];// TSMap<number,Answer>; // {[key: number]: Answer[]} = {};
@JsonProperty('size_on_disk',Number)
sizeOnDisk:number;
@JsonProperty('email_opened',Boolean)
emailOpened:boolean;
@JsonProperty('token',String)
token:string;
constructor() {
}
...
}
这就是我反序列化 JSON 的方式。
private getRespondents(start:number,end:number) {
this._projectService.getRespondentsByRange(start,end,-1,-1,-1,this.questionnaire.id,-1,false).subscribe((respondents) => {
this.respondents = new Array<Respondent>();
this.respondents = new JsonConvert().deserializeArray(respondents,Respondent); // doe s not work
if(this.respondents!=null && this.respondents.length>0) {
this._sizeOnDisk = this.respondents[0].sizeOnDisk * this._nbOfRespondents;
}
},
error => this._errorMessage = <any>error);
}
解决方案
好的,我找到了答案。
官方文档中没有明确规定。
您必须初始化类属性。
@JsonProperty("email", String)
public email: String = "";
推荐阅读
- reactjs - jsPDF addSvgAsImage,canvg未定义
- javascript - 更新状态后组件未重新渲染(调用了 mapStateToProps)
- batch-file - 为什么在使用 FOR 处理文件名列表时,文件名部分直到第一个空格输出?
- entity-framework - 按外键对象的属性排序
- reactjs - 两次调用 componentDidMount
- compilation - 使用 Agda 编译的问题
- google-apps-script - 我需要帮助来清理阻止行的脚本
- json - JQ 使用 ETL,在 JSON 数组中创建内部数组
- java - 如何持久化在 Flux 的特定步骤创建的对象,之后不再需要?
- php - 如何获取规范的当前工作目录