Cara Mensirikan Tatasusunan JSON Jenis Campuran dalam Go
Cabaran
Mencipta JSON tatasusunan yang mewakili data heterogen, seperti gabungan rentetan, nombor titik terapung dan aksara unikod, boleh menjadi mencabar dalam Go kerana kekurangan sokongan untuk jenis bercampur dalam tatasusunan.
Penyelesaian
Untuk mengatasi had ini, kami boleh memanfaatkan mekanisme pensirian JSON yang boleh disesuaikan Go dengan melaksanakan antara muka json.Marshaler dan json.Unmarshaler. Dengan mentakrifkan fungsi ini pada jenis tersuai kami, kami mendapat kawalan ke atas cara data kami disiri dan dinyahsiri.
Pensiran (Marshaling)
Untuk mensirikan data jenis campuran kami ke dalam tatasusunan JSON, kami mencipta fungsi MarshalJSON untuk jenis tersuai kami. Dalam fungsi ini, kami mencipta kepingan perantaraan elemen antara muka{} dan mengisinya dengan nilai yang kami mahu sirikan. Kami kemudiannya menggunakan fungsi json.Marshal pada kepingan untuk menjana perwakilan JSON bagi data kami.
Penyahserikatan (Unmarshaling)
Begitu juga, untuk penyahserikatan, kami mencipta Fungsi UnmarshalJSON. Di sini, kami mula-mula menggunakan fungsi json.Unmarshal untuk menghuraikan bait JSON yang masuk ke dalam kepingan perantaraan elemen{} antara muka. Kami kemudiannya mengekstrak nilai secara manual daripada hirisan dan menetapkannya ke medan jenis tersuai kami.
Contoh
Contoh berikut menunjukkan cara mensiri dan menyahsiri campuran -jenis data struktur:
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) } func main() { rows := []Row{ {"ooid1", 2.0, "Söme text"}, {"ooid2", 1.3, "Åther text"}, } marshalled, _ := json.Marshal(rows) fmt.Println(string(marshalled)) }
Kesimpulan
Dengan melaksanakan antara muka json.Marshaler dan json.Unmarshaler, kami memperoleh fleksibiliti untuk mengendalikan struktur data jenis campuran dalam Go. Pendekatan ini membolehkan kami menyesuaikan proses bersiri dan penyahsirilan, menghasilkan format tatasusunan JSON yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mensiri Tatasusunan JSON Jenis Campuran dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!