java - 不同类中 Typescript 中日期的自定义 JSON 解析器

标签 java json angular typescript

我有一个 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 日期字符串示例,自动从 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"}}

最佳答案

这种不友好的日期格式可能是后端造成的。我从来没有遇到过 Angular 中任何 API 的日期问题。

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

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

关于java - 不同类中 Typescript 中日期的自定义 JSON 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52862691/

相关文章:

jquery - 使用简单的 JSON Hello World 应用程序时遇到问题

javascript - 以 Angular 从 react 形式获取预填充数据

visual-studio - Angular 2 代码片段扩展(来自 Mads)在 VS 2017 中不起作用

java - 好的java分词器吗?

java - 为什么这个缓存不能使用 final 作为修饰符

android - json 值的 img src 属性在 android TextView 中显示蓝色小框

node.js - 如何内存 TypeScript getter

java - 如何将所有文件路径加载到字符串数组中

java - Greenfoot 编程 - Actor 行为

php - MySQL 列 json 与连接