Memperibadikan Output JSON untuk Cap Masa
Mensiri struktur Go dengan format tarikh tersuai boleh dicapai dengan menyesuaikan proses pengekodan untuk jenis data tertentu. Dalam kes cap masa, perwakilan JSON lalai jenis masa.masa selalunya tidak memenuhi keperluan pemformatan yang diingini.
Untuk menangani perkara ini, anda boleh membalut masa.Masa dalam jenis data tersuai yang melaksanakan json.Marshaler antara muka. Antara muka ini mentakrifkan kaedah MarshalJSON, yang membolehkan anda mentakrifkan cara jenis harus diwakili dalam JSON.
Contohnya:
type JSONTime time.Time func (t JSONTime) MarshalJSON() ([]byte, error) { // Convert the timestamp to the desired format stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2")) return []byte(stamp), nil }
Dalam struktur Dokumen anda, kemas kini medan Setem untuk digunakan JSONTime dan bukannya masa.Masa:
type Document struct { Name string Content string Stamp JSONTime Author string }
Apabila anda mengekod Dokumen menggunakan json.Marshal atau json.NewEncoder, medan Setem akan disiri dalam format tersuai anda. Sebagai contoh, bukannya "2014-05-16T08:28:06.801064-04:00", anda mungkin mendapat "15 Mei 2014".
Pendekatan ini memberikan lebih fleksibiliti dalam mengawal cara cap masa diwakili dalam JSON , membolehkan anda menyesuaikannya dengan keperluan khusus untuk paparan atau pertukaran data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Output Cap Masa JSON dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!