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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 14:13:17188ブラウズ

How Can I Customize Timestamp Formatting in Go's JSON Responses?

JSON 応答のタイムスタンプのフォーマット

Go の time パッケージは、タイムスタンプを表現するための time.Time 型を提供します。ただし、json.NewEncoder を使用して time.Time オブジェクトを JSON にエンコードすると、マシンに適した形式でフォーマットされます。 JSON 応答のタイムスタンプ形式をカスタマイズする場合は、次の手順を実行します。

タイムスタンプ形式のカスタマイズ

time.Time を埋め込み、マーシャラー インターフェイス。

type JSONTime time.Time

func (t JSONTime) MarshalJSON() ([]byte, error) {
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}

このコードは、タイムスタンプを次のようにフォーマットする型を定義します。 "Mon Jan _2".

カスタム時刻型の使用

Document 構造体で、タイムスタンプ フィールドに JSONTime 型を使用します:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}

サンプルコード

初期化カスタム タイムスタンプを持つドキュメント:

testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}    

これで、カスタム タイムスタンプ形式で応答を送信できます:

sendResponse(testDoc, w,r)

注:

または、timelib のようなライブラリを使用して、タイムスタンプ形式を簡単にカスタマイズできます。 time.Time 値の MarshalJSON メソッドを提供します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。