Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menetapkan Nilai Lalai Apabila Menghuraikan JSON dalam Go?

Bagaimanakah Saya Boleh Menetapkan Nilai Lalai Apabila Menghuraikan JSON dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-10 17:12:17621semak imbas

How Can I Set Default Values When Parsing JSON in Go?

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:

  • [xjson](https://github.com/gobuffalo/x/blob/master/xjson/xjson.go) menyediakan penghurai JSON yang boleh disesuaikan yang membenarkan spesifikasi nilai lalai dan pilihan lain.
  • [eson](https://github.com/sean-/eson) ialah JSON lain penghurai yang menyokong nilai lalai melalui kaedah lalai()nya.

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!

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