做法
在一些情況下,資料庫裡的日期欄位會是 NULL,比方說 ReviewedAt 欄位,如果有值,表示「已審核」,如果為 NULL,表示「未審核」。
| 1 | type Model struct { | 
這裡的 ReviewedAt 如果是 time.Time 型別:
| 1 | type ReviewedAt time.Time | 
當 ReviewedAt 欄位為 NULL,且序列化成 JSON 格式時,日期會變成預設值。
| 1 | { | 
標準庫 database/sql 有提供 sql.NullTime 型別可以做為替代方案,如下:
| 1 | type ReviewedAt sql.NullTime | 
sql.NullTime 型別包含了 Time 和 Valid 屬性:
| 1 | type NullTime struct { | 
不過,當 ReviewedAt 欄位為 NULL,且序列化成 JSON 格式時,日期會變成以下物件:
| 1 | { | 
因此需要進一步封裝 sql.NullTime 型別:
| 1 | package model | 
在模型中使用封裝後的 NullTime 型別:
| 1 | type Model struct { | 
現在,當 ReviewedAt 欄位為 NULL,且序列化成 JSON 格式時,日期就可以顯示為 NULL。
| 1 | { |