ホームページ > バックエンド開発 > 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 エンコード中にタイムスタンプを書式設定するには、マーシャラー インターフェイスを実装するカスタム タイプを作成できます。 。これにより、シリアル化プロセスを制御できるようになり、目的の形式を指定できるようになります。

マーシャラー インターフェイスの実装

マーシャラー インターフェイスには 1 つのメソッドが必要です。 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
}
ログイン後にコピー

ドキュメント構造体の更新

Document 構造体で、time.Time をスタンプのカスタム JSONTime タイプに置き換えます。フィールド:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}
ログイン後にコピー

ドキュメントの初期化

Document インスタンスを初期化するときは、time.Now():

testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
ログイン後にコピー
これらの手順に従うことで、要件に応じて JSON 応答のタイムスタンプをフォーマットできます。必要に応じて、この概念を他のカスタム タイプまたはシナリオに拡張できます。

以上がGo の JSON 出力でタイムスタンプの形式をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート