Как мне преобразовать полученные числа как Duration (JODA.js) в правильную форму Duration из JSON?

Есть следующая проблема:

Когда я получаю данные из своего Backend, Duration не будет правильно получен. Он будет инициализирован как число в секундах.


export class Booking {
    id: number;
    projectId: number;
    userId: number;
    bookedTime: Duration;
    workDate: LocalDate;
    description: string;
}

Когда я получу ответ, все будет правильно установлено, кроме Duration.

В настоящее время я делаю это, чтобы преобразовать значение после того, как я его получил, и это единственный способ заставить это работать:


this.timeTrackingService.findByProjectDateBetween(projectId, LocalDate.of(2020, 3, 1), LocalDate.of(2020, 3, 31))
            .subscribe((bookings: Booking[]) => {
                bookings.forEach(booking => {
                    booking.bookedTime = Duration.ofSeconds(Number(booking.bookedTime));
             });

Но я хочу иметь правильно сериализованную длительность без этого.

Вот что я пробовал:


export class Booking {
    private _bookedTime: Duration;
    id: number;
    projectId: number;
    userId: number;

    workDate: LocalDate;
    description: string;

    set bookedTime(value:Duration){
       this._bookedTime = Duration.ofSeconds(Number(value));
    }

    get bookedTime(): Duration{
       if(isNumber(this._bookedTime)) 
             this._bookedTime = Duration.ofSeconds(Number(this._bookedTime));
       return this._bookedTime;
    }

}

Но все равно будет ошибка "booking.bookedTime.toHours()" is not a function

Только вот трансформирую вручную.

У вас есть подсказка / подсказка для решения этой проблемы?

0 ответов

Другие вопросы по тегам