Menentukan Nilai Lalai dalam JSON Parsing dengan Go
Apabila menghuraikan objek JSON dalam Go, mungkin perlu untuk menentukan nilai lalai untuk medan yang tidak disediakan dalam input JSON. Pertimbangkan jenis struct dengan medan berikut:
type Test struct { A string B string C string }
Andaikan nilai lalai yang diingini untuk A, B dan C ialah "a", "b", dan "c", masing-masing. Apabila menghuraikan JSON berikut:
{"A": "1", "C": 3}
struktur yang dijangkakan ialah:
Test{A: "1", B: "b", C: "3"}
Menggunakan Pakej pengekodan/json
Terbina -in pengekodan/pakej json dalam Go membenarkan spesifikasi nilai lalai semasa penghuraian JSON. Daripada menggunakan struct kosong, sediakan struct dengan nilai lalai yang diingini seperti berikut:
var example []byte = []byte(`{"A": "1", "C": "3"}`) out := Test{ A: "default a", B: "default b", // default for C will be "", the empty value for a string } err := json.Unmarshal(example, &out) // <- if err != nil { panic(err) } fmt.Printf("%+v", out)
Dengan memanggil json.Unmarshal(contoh, &out), JSON dinyahmarshaled ke dalam out struct, menimpa nilai dinyatakan dalam JSON. Walau bagaimanapun, nilai lalai untuk medan yang tidak terdapat dalam JSON kekal tidak berubah. Menjalankan contoh mengembalikan:
{A:1 B:default b C:3}
Library Go Lain
Jika pakej pengekodan/json tidak memenuhi keperluan khusus, terdapat perpustakaan Go lain yang menyediakan fungsi yang serupa . Pertimbangkan perkara berikut:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Nilai Lalai Apabila Menghuraikan JSON dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!