Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menghuraikan Tatasusunan JSON dalam Go Menggunakan Pakej `json`?

Bagaimana untuk Menghuraikan Tatasusunan JSON dalam Go Menggunakan Pakej `json`?

Linda Hamilton
Linda Hamiltonasal
2024-12-10 14:03:10571semak imbas

How to Parse JSON Arrays in Go Using the `json` Package?

Menghuraikan Tatasusunan JSON dalam Go dengan Pakej JSON

Masalah: Bagaimanakah anda boleh menghuraikan rentetan JSON yang mewakili tatasusunan dalam Go menggunakan pakej json?

Kod Contoh:

Pertimbangkan kod Go berikut:

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)
}

Penjelasan:

Kod yang disediakan mentakrifkan jenis JsonType dengan tatasusunan daripada rentetan. Ia kemudiannya cuba untuk menyahmarshal rentetan JSON ke dalam medan tatasusunan contoh JsonType. Walau bagaimanapun, terdapat masalah dengan kod.

Penyelesaian:

Nilai pulangan Unmarshal ialah ralat. Kod ini pada asalnya mencetak ralat ini dan bukannya tatasusunan yang tidak terkawal. Untuk membetulkannya, anda boleh menukar kod kepada:

err := json.Unmarshal([]byte(dataJson), &arr)

Selain itu, anda boleh memudahkan kod dengan terus menyahmarshaling ke dalam kepingan tatasusunan tanpa menggunakan jenis tersuai:

var arr []string
_ = json.Unmarshal([]byte(dataJson), &arr)

Ini kod memberikan kepingan yang tidak dimarshaled kepada arr. Garis bawah sebelum tugasan menindas nilai ralat, yang tidak digunakan dalam kod ini.

Dengan menggunakan pakej json dengan berkesan, anda boleh menghuraikan tatasusunan JSON dengan mudah dalam Go.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Tatasusunan JSON dalam Go Menggunakan Pakej `json`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn