我有一个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
类添加一个自定义解析器,但是我在多个类上都有日期,并且我不想为每个类都创建一个解析器,因为其他属性(日期除外) )解析得很好。
所以我的问题是:是否可以为所有“日期”字段添加自定义解析器?
P.S。这是示例JSON日期字符串,可从Java LocalDateTime
自动解析:
"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"}}
答案 0 :(得分:1)
这种不友好的日期格式可能是由后端引起的。我从Angular的任何API的日期中都没有遇到任何问题。
您可以创建getter / setter来封装类中某些字段的自定义解析逻辑。
在我看来,固定后端侧并从类移到Angular侧的接口会更好。接口更适合TypeScript中的普通DTO模型。