首頁 > 後端開發 > Golang > 如何在 Go 的 JSON 輸出中自訂時間戳格式?

如何在 Go 的 JSON 輸出中自訂時間戳格式?

DDD
發布: 2025-01-03 06:41:39
原創
910 人瀏覽過

How Can I Customize Timestamp Formatting in Go's JSON Output?

使用自訂類型格式化傳出JSON 中的時間戳

要在JSON 編碼期間格式化時間戳,您可以建立一個實作Marshaler 介面的自訂類型。透過這樣做,您可以控制序列化過程,從而指定所需的格式。

實作 Marshaler 介面

Marshaler 介面需要一個方法, MarshalJSON,它傳回表示 JSON 編碼資料的位元組切片以及錯誤(如果有)。在本例中,您將定義一個包裝 time.Time 並實作 MarshalJSON 的自訂類型。

這是一個範例實作:

type JSONTime time.Time

func (t JSONTime)MarshalJSON() ([]byte, error) {
    // Format the timestamp in the desired format
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}
登入後複製

更新文件結構

在您的文件結構中,將time.Time 替換為Stamp的自訂JSONTime 類型field:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}
登入後複製

初始化Document

初始化Document 實例時,使用JSONTime(time.Now()) 而不是time.Now():

testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
登入後複製

透過執行下列步驟,您可以根據您的要求格式化JSON 回應中的時間戳記。您可以根據需要將此概念擴展到其他自訂類型或場景。

以上是如何在 Go 的 JSON 輸出中自訂時間戳格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板