Tafsiran dokumen bahasa Go: Penjelasan terperinci tentang pengekodan/json. Antara muka Unmarshaler, contoh kod khusus diperlukan
Pengenalan:
Dalam bahasa Go, pakej pengekodan/json menyediakan satu siri fungsi dan antara muka untuk mengendalikan pengekodan dan penyahkodan data JSON beroperasi. Antaranya, antara muka json.Unmarshaler memainkan peranan penting dalam menyahkod data JSON. Artikel ini akan menerangkan antara muka json.Unmarshaler secara terperinci dan memberikan contoh kod khusus.
Pengenalan kepada antara muka json.Unmarshaler: Antara muka
json.Unmarshaler mentakrifkan kaedah untuk jenis tersuai untuk mengawal cara data JSON dinyahkod. Antara muka ditakrifkan seperti berikut:
type Unmarshaler interface { UnmarshalJSON([]byte) error }
Unmarshaler hanya mempunyai satu kaedah ralat UnmarshalJSON([]bait), yang digunakan untuk menyahkod kepingan bait JSON yang masuk dan menukarnya kepada jenis sasaran.
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` } func (p *Person) UnmarshalJSON(data []byte) error { var v struct { Name string `json:"Name"` Age int `json:"Age"` Email string `json:"Email"` } err := json.Unmarshal(data, &v) if err != nil { return err } p.Name = v.Name p.Age = v.Age p.Email = v.Email return nil } func main() { data := []byte(`{"Name":"John Doe","Age":30,"Email":"johndoe@example.com"}`) var p Person err := json.Unmarshal(data, &p) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Name:", p.Name) fmt.Println("Age:", p.Age) fmt.Println("Email:", p.Email) }
Dalam kod di atas, kami mentakrifkan struktur Orang, di mana medan Nama, Umur dan E-mel masing-masing mewakili nama, umur dan alamat e-mel. Kaedah ralat UnmarshalJSON([]bait) dilaksanakan dalam struktur Orang, yang melaluinya kepingan bait JSON yang masuk dinyahkodkan menjadi objek jenis Orang.
Dalam fungsi utama, kami mentakrifkan data json dan kemudian menyahkodnya menjadi objek p jenis Person. Akhir sekali, cetak setiap medan Orang.
Saya harap artikel ini akan membantu anda memahami peranan dan penggunaan antara muka json.Unmarshaler.
Atas ialah kandungan terperinci Tafsiran dokumen bahasa Go: Penjelasan terperinci tentang antara muka pengekodan/json.Unmarshaler. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!