Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menyesuaikan Pemformatan Cap Masa dalam Output JSON Go?

Bagaimanakah Saya Boleh Menyesuaikan Pemformatan Cap Masa dalam Output JSON Go?

DDD
DDDasal
2025-01-03 06:41:39939semak imbas

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

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn