Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menyesuaikan masa. Susun atur masa semasa menyusun ke JSON di 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!