Memformat Cap Masa dalam JSON Keluar dengan Jenis Tersuai
Untuk memformat cap masa semasa pengekodan JSON, anda boleh mencipta jenis tersuai yang melaksanakan antara muka Marshaler . Dengan berbuat demikian, anda mendapat kawalan ke atas proses bersiri, membolehkan anda menentukan format yang diingini.
Melaksanakan Antara Muka Marshaler
Antara muka Marshaler memerlukan satu kaedah, MarshalJSON, yang mengembalikan kepingan bait yang mewakili data yang dikodkan JSON dan ralat jika ada. Dalam kes ini, anda akan menentukan jenis tersuai yang membungkus masa. Masa dan melaksanakan MarshalJSON.
Berikut ialah contoh pelaksanaan:
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 }
Mengemas kini Struktur Dokumen
Dalam struct Dokumen anda, gantikan masa.Masa dengan jenis JSONTime tersuai untuk Setem medan:
type Document struct { Name string Content string Stamp JSONTime Author string }
Memulakan Dokumen
Apabila memulakan contoh Dokumen, gunakan JSONTime(time.Now()) dan bukannya masa.Now():
testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
Dengan mengikut langkah ini, anda boleh memformat cap masa dalam respons JSON anda mengikut keperluan anda. Anda boleh melanjutkan konsep ini kepada jenis atau senario tersuai lain mengikut keperluan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Pemformatan Cap Masa dalam Output JSON Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!