Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menyesuaikan masa. Susun atur masa semasa menyusun ke JSON di Golang?

Bagaimanakah saya boleh menyesuaikan masa. Susun atur masa semasa menyusun ke JSON di Golang?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 03:55:02685semak imbas

How can I customize the time.Time layout when marshalling to JSON in Golang?

Menyesuaikan Reka Letak Masa. Masa untuk JSON Marshalling

Dalam pakej pengekodan/json Golang, reka letak lalai untuk masa. Nilai masa ialah "2006 -01-02T15:04:05Z". Walau bagaimanapun, adalah mungkin untuk mengatasi reka letak ini untuk menggunakan rentetan pemformatan tersuai.

Penyelesaian:

Untuk mengatasi reka letak yang digunakan oleh json.Marshal untuk medan masa.Masa , anda boleh menentukan jenis baharu yang membenamkan masa. Masa dan melaksanakan antara muka MarshalText. Antara muka ini mentakrifkan kaedah yang mengembalikan perwakilan bait nilai. Kod di bawah menunjukkan cara untuk mencapai ini:

<code class="go">package main

import (
    "encoding/json"
    "fmt"
    "time"
)

type jsonTime struct {
    time.Time
    f string
}

func (j jsonTime) format() string {
    return j.Time.Format(j.f)
}

func (j jsonTime) MarshalText() ([]byte, error) {
    return []byte(j.format()), nil
}

func (j jsonTime) MarshalJSON() ([]byte, error) {
    return []byte(`"` + j.format() + `"`), nil
}

func main() {
    jt := jsonTime{time.Now(), time.Kitchen}
    x := map[string]interface{}{
        "foo": jt,
        "bar": "baz",
    }
    data, err := json.Marshal(x)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%s", data)
}</code>

Dalam kod ini, struct jsonTime membenamkan nilai masa dan mentakrifkan kaedah format() tersuai untuk mengembalikan masa sebagai rentetan menggunakan reka letak yang ditentukan . Ia juga melaksanakan antara muka MarshalText dan MarshalJSON untuk mengembalikan perwakilan rentetan tersuai semasa marshalling JSON.

Dengan menggunakan pendekatan ini, anda boleh mengawal reka letak yang digunakan untuk masa. Nilai masa dalam output JSON dan menyesuaikannya mengikut khusus anda keperluan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyesuaikan masa. Susun atur masa semasa menyusun ke JSON di Golang?. 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