TypeScript前端如何處理Java后臺(tái)Timestamp類型時(shí)間數(shù)據(jù)導(dǎo)致的字符串問題?

TypeScript前端如何處理Java后臺(tái)Timestamp類型時(shí)間數(shù)據(jù)導(dǎo)致的字符串問題?

前后端時(shí)間數(shù)據(jù)類型不一致的解決方案

前端開發(fā)中,常常遇到后端返回的時(shí)間數(shù)據(jù)與前端類型不符的情況,導(dǎo)致無法直接處理時(shí)間數(shù)據(jù)。本文針對 typescript 前端接收 Java 后端 timestamp 類型時(shí)間數(shù)據(jù),最終得到字符串的問題,提供詳細(xì)的解決方案。

問題:

核心問題在于前后端時(shí)間數(shù)據(jù)類型不匹配。后端 Java 應(yīng)用使用 DATETIME 數(shù)據(jù)庫字段和 Timestamp 類型實(shí)體類存儲(chǔ)時(shí)間,前端 TypeScript 將 createTime 和 updateTime 定義為 number 類型(時(shí)間戳)。然而,前端實(shí)際接收到的 createTime 卻是字符串,無法直接進(jìn)行時(shí)間處理。本文也探討如何讓后端直接返回時(shí)間戳。

立即學(xué)習(xí)Java免費(fèi)學(xué)習(xí)筆記(深入)”;

分析與解決方案:

TypeScript 的 Interface 僅作類型定義,不進(jìn)行數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換,與 Java 的 POJO 類不同。 interface 無法自動(dòng)將 json 字符串轉(zhuǎn)換為數(shù)字。即使定義 createTime 為 number,后端返回字符串,TypeScript 接收的仍是字符串。因此,interface 定義需與實(shí)際 JSON 數(shù)據(jù)類型一致。 將 Icon 接口中的 createTime 和 updateTime 修改為 String 或 number | string 類型可以解決類型不匹配的編譯錯(cuò)誤

為了解決后端返回的時(shí)間數(shù)據(jù)類型問題,可以使用 Java 的 JSON 處理庫(例如 Jackson)的注解控制時(shí)間數(shù)據(jù)的序列化格式。@JsonFormat(shape = JsonFormat.Shape.NUMBER) 注解可以將 Timestamp 類型數(shù)據(jù)序列化為數(shù)值型時(shí)間戳。

另一種方法是使用 spring 的 @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) 注解,指定日期時(shí)間的格式。

通過以上方法,確保后端返回的時(shí)間數(shù)據(jù)格式與前端期望格式一致,避免前端處理錯(cuò)誤。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享