Menghuraikan Tatasusunan JSON dalam Go Menggunakan Pakej JSON
Apabila cuba menghuraikan rentetan yang mewakili tatasusunan JSON dalam Go menggunakan pakej json, sesetengah pembangun mungkin menghadapi ralat dengan fungsi Unmarshal. Artikel ini menyediakan penyelesaian dan menyerlahkan pendekatan alternatif.
Kod Asal:
type JsonType struct { Array []string } func main() { dataJson := `["1","2","3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }
Isu:
Ralat yang dikembalikan oleh Unmarshal sedang dicetak dan bukannya tatasusunan yang dijangkakan. Untuk menyelesaikan masalah ini, fungsi Unmarshal hendaklah diubah suai seperti berikut:
err := json.Unmarshal([]byte(dataJson), &arr)
Nilai pulangan Unmarshal ialah ralat, yang harus dikendalikan dengan sewajarnya.
Pendekatan Ringkas:
Untuk memudahkan kod, struct JsonType boleh dihapuskan dan sekeping boleh digunakan terus:
package main import ( "encoding/json" "log" ) func main() { dataJson := `["1","2","3"]` var arr []string _ = json.Unmarshal([]byte(dataJson), &arr) log.Printf("Unmarshaled: %v", arr) }
Faedah Menggunakan Penunjuk (Pilihan):
Melalukan penunjuk kepada pembolehubah dalam Unmarshal membolehkan pengoptimuman memori dan potensi peningkatan prestasi, terutamanya dalam pemprosesan konteks di mana pembolehubah yang sama digunakan semula berulang kali.
Kesimpulan:
Dengan mengubah suai fungsi Unmarshal dan menggunakan hirisan terus, pembangun boleh menghuraikan tatasusunan JSON dalam Go dengan berkesan menggunakan pakej json. Penggunaan penunjuk apabila menghantar pembolehubah kepada Unmarshal boleh mengoptimumkan lagi penggunaan memori, terutamanya dalam senario pemprosesan.
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Tatasusunan JSON dengan betul dalam Go Menggunakan Pakej `json`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!