Menstrim Tatasusunan JSON untuk Data Besar
Menyahkod tatasusunan JSON yang besar ke dalam ingatan boleh menjadi masalah, yang membawa kepada isu ingatan. Untuk menangani perkara ini, penstriman elemen JSON ialah penyelesaian yang lebih cekap.
Pakej pengekodan/json dalam Go menyediakan mekanisme untuk menstrim elemen data JSON mengikut elemen. Berikut ialah contoh lanjutan:
package main import ( "encoding/json" "fmt" "log" "strings" ) func main() { const jsonStream = ` [ {"Name": "Ed", "Text": "Knock knock."}, {"Name": "Sam", "Text": "Who's there?"}, {"Name": "Ed", "Text": "Go fmt."}, {"Name": "Sam", "Text": "Go fmt who?"}, {"Name": "Ed", "Text": "Go fmt yourself!"} ] ` type Message struct { Name, Text string } dec := json.NewDecoder(strings.NewReader(jsonStream)) // Read the opening bracket. t, err := dec.Token() if err != nil { log.Fatal(err) } fmt.Printf("%T: %v\n", t, t) // Loop through the array elements. for dec.More() { var m Message // Decode the current element. err = dec.Decode(&m) if err != nil { log.Fatal(err) } fmt.Printf("%v: %v\n", m.Name, m.Text) } // Read the closing bracket. t, err = dec.Token() if err != nil { log.Fatal(err) } fmt.Printf("%T: %v\n", t, t) }
Dalam contoh ini, kami secara eksplisit mengendalikan kurungan pembukaan dan penutup tatasusunan JSON dan menyahkod setiap elemen secara individu, membolehkan kami menstrim melalui data JSON dengan cekap tanpa overhed memori.
Atas ialah kandungan terperinci Bagaimana Menstrim dan Menyahkod Tatasusunan JSON Besar dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!