カスタム タイプを使用した送信 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"}
以上がGo の JSON 出力でタイムスタンプの形式をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。