Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mensiri dan Menyahsiri Tatasusunan JSON Heterogen dalam Go?
Mensiri Tatasusunan JSON Heterogen dalam Go
Dalam Go, mensiri tatasusunan JSON heterogen (mengandungi gabungan rentetan, nombor dan aksara unikod) menimbulkan cabaran kerana larangan bahasa pada kepingan jenis campuran. Pertimbangkan struktur JSON yang diingini berikut:
{ results: [ ["ooid1", 2.0, "Söme text"], ["ooid2", 1.3, "Åther text"], ] }
Pensirian dengan Antara Muka Marshaler
Untuk menyesuaikan penyiaran, kami boleh melaksanakan antara muka json.Marshaler untuk jenis Row kami. Kami akan menggunakan kepingan perantaraan antara muka{} untuk mengekod nilai heterogen:
package main import ( "encoding/json" "fmt" ) type Row struct { Ooid string Score float64 Text string } func (r *Row) MarshalJSON() ([]byte, error) { arr := []interface{}{r.Ooid, r.Score, r.Text} return json.Marshal(arr) }
Dalam contoh ini, kaedah MarshalJSON menukarkan Row kepada tatasusunan jenis campuran.
Deserialisasi dengan Antara Muka Unmarshaler
Kami juga boleh melaksanakan Antara muka json.Unmarshaler untuk memusnahkan nilai heterogen:
func (r *Row) UnmarshalJSON(bs []byte) error { arr := []interface{}{} json.Unmarshal(bs, &arr) r.Ooid = arr[0].(string) r.Score = arr[1].(float64) r.Text = arr[2].(string) return nil }
Kaedah ini menukarkan bait JSON kembali ke dalam struktur Baris kami.
Atas ialah kandungan terperinci Bagaimana untuk Mensiri dan Menyahsiri Tatasusunan JSON Heterogen dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!