不同类中打字稿中日期的自定义 JSON 解析器



我有一个Angular WebApp,它通过http get从后端Java服务器检索数据。 例:

public getStateForUser(): Observable<UserRegistrationState> {
return this.http.get<any>(Environment.getServerAddress() + '/' + 
UserRegistrationStateService.SERVICE_URL + '/getStateForUser', {
params: {
sessionIdentityStr: this.authGuard.getSession().sessionIdentityStr
}
});
}
export class UserRegistrationState {
registerDate: Date;
emailVerified: boolean;
unlocked: boolean;
}

这适用于所有字段。日期除外。日期未正确解析,因此我想添加一个自定义解析器,我可以告诉他如何从 json 日期字符串中获取日期值。

当然,现在我可以为整个UserRegistrationState类添加一个自定义解析器,但我在多个类上都有日期,我不想为每个类创建一个解析器,因为其他属性(日期除外(解析得很好。

所以我的问题:有没有办法为所有日期字段添加自定义解析器?

附言这是一个示例 JSON 日期字符串,从 JavaLocalDateTime自动解析:

"registerDate":{"dayOfMonth":17,"dayOfWeek":"WEDNESDAY","dayOfYear":290,"month":"OCTOBER","monthValue":10,"year":2018,"hour":21,"minute":21,"nano":370000000,"second":16,"chronology":{"id":"ISO","calendarType":"iso8601"}}

这种不友好的日期格式可能是由后端引起的。我在 Angular 中的任何 API 中从未遇到过任何问题。

您可以创建 getter/setter 来封装类中某个字段的自定义解析逻辑。

在我看来,修复后端并从类移动到 Angular 端的接口会更好。接口更适合 TypeScript 中的普通 DTO 模型。

最新更新