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

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

Linda Hamilton
Linda Hamiltonasal
2024-12-25 14:13:17188semak imbas

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

Memformat Cap Masa dalam JSON Responses

Pakej masa Go menyediakan masa. Jenis masa untuk mewakili cap masa. Walau bagaimanapun, apabila mengekodkan objek time.Time kepada JSON menggunakan json.NewEncoder, ia diformatkan dalam format mesra mesin. Jika anda ingin menyesuaikan format cap masa dalam respons JSON, gunakan langkah berikut:

Menyesuaikan Format Cap Masa

Buat jenis tersuai yang membenamkan masa. Masa dan melaksanakan Antara muka Marshaler.

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
}

Kod ini mentakrifkan jenis yang memformat cap masa sebagai "Isnin Jan _2".

Menggunakan Jenis Masa Tersuai

Dalam struct Dokumen anda, gunakan jenis JSONTime untuk medan cap masa:

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

Kod Contoh

Mulakan Dokumen dengan tersuai anda cap masa:

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

Kini, anda boleh menghantar respons dengan format cap masa tersuai:

sendResponse(testDoc, w,r)

Nota:

Sebagai alternatif, anda boleh menggunakan perpustakaan seperti timelib untuk menyesuaikan format cap masa dengan mudah. Ia menyediakan kaedah MarshalJSON untuk masa. Nilai masa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Pemformatan Cap Masa dalam Respons 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