自訂時間戳的JSON 輸出
可以透過自訂特定資料類型的編碼過程來實現使用自訂日期格式序列化Go結構。對於時間戳,time.Time 類型的預設 JSON 表示形式通常無法滿足所需的格式要求。
要解決此問題,您可以將 time.Time 包裝在實作 json.Marshaler 的自訂資料類型中介面。此介面定義了一個 MarshalJSON 方法,使您能夠定義如何在 JSON 中表示類型。
例如:
type JSONTime time.Time func (t JSONTime) MarshalJSON() ([]byte, error) { // Convert the timestamp to the desired format stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2")) return []byte(stamp), nil }
在您的文件結構中,更新Stamp 欄位以使用JSONTime 而不是time.Time:
type Document struct { Name string Content string Stamp JSONTime Author string }
當您使用json. Marshal 或json.NewEncoder 編碼文件時,Stamp欄位將以您的自訂格式序列化。例如,您可能會得到“2014 年 5 月 15 日”,而不是“2014-05-16T08:28:06.801064-04:00”。
此方法在控制時間戳在 JSON 中的表示方式方面提供了更大的靈活性,允許您根據顯示或資料交換的特定要求進行調整。
以上是如何在 Go 中自訂 JSON 時間戳輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!