ホームページ > バックエンド開発 > Golang > Go の JSON 応答でタイムスタンプの形式をカスタマイズするにはどうすればよいですか?

Go の JSON 応答でタイムスタンプの形式をカスタマイズするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-23 22:46:14
オリジナル
784 人が閲覧しました

How to Customize Timestamp Formatting in Go's JSON Responses?

Time.Time を使用した送信 JSON のタイムスタンプの書式設定

Go では、JSON 応答の一部として time.Time 型を送信するときに、タイムスタンプをデフォルトの ISO 8601 形式ではなく、希望の形式にフォーマットすることが望ましい場合がよくあります。これを実現するには、次の手法を使用できます。

カスタム マーシャリングとアンマーシャリング

Marshall インターフェイスをカスタム タイプで実装して、JSON 表現を決定できます。同様に、Unmarshaler インターフェイスを使用して、JSON データをカスタム タイプに解析することを制御できます。 time.Time については、MarshalJSON を実装する JSONTime タイプを定義します。

type JSONTime time.Time

func (t JSONTime) MarshalJSON() ([]byte, error) {
    // Format the time in the desired format
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}
ログイン後にコピー

ドキュメント タイプの更新

ドキュメント タイプで、スタンプ フィールドを変更します。 JSONTime に入力します:

type Document struct {
    ...
    Stamp       JSONTime
    ...
}
ログイン後にコピー

例使用法

テスト ドキュメントを初期化するとき:

testDoc := model.Document{
    ...
    Stamp:       JSONTime(time.Now()),
    ...
}
ログイン後にコピー

タイムスタンプは、JSON としてエンコードされるときに指定された形式に従ってフォーマットされます:

{
  ...
  "Stamp": "May 15, 2014"
  ...
}
ログイン後にコピー

このアプローチにより、JSON 応答でのタイムスタンプのフォーマット方法に柔軟性と制御が提供され、特定の要件に応じたカスタマイズが可能になります。

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

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