タイムスタンプの JSON 出力のカスタマイズ
カスタム日付形式を使用した Go 構造体のシリアル化は、特定のデータ型に合わせてエンコード プロセスを調整することで実現できます。タイムスタンプの場合、time.Time 型のデフォルトの JSON 表現は、必要な形式要件を満たさないことがよくあります。
これに対処するには、json.Marshaler を実装するカスタム データ型で time.Time をラップします。インタフェース。このインターフェイスは、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 }
Document 構造で、使用する Stamp フィールドを更新します。 time.Time の代わりに JSONTime:
type Document struct { Name string Content string Stamp JSONTime Author string }
json.Marshal またはjson.NewEncoder を使用すると、スタンプ フィールドがカスタム形式でシリアル化されます。たとえば、「2014-05-16T08:28:06.801064-04:00」の代わりに「2014 年 5 月 15 日」を取得できます。
このアプローチにより、JSON でのタイムスタンプの表現方法をより柔軟に制御できます。表示やデータ交換の特定の要件に適応させることができます。
以上がGo で JSON タイムスタンプ出力をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。