使用自訂類型格式化傳出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中文網其他相關文章!