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
Lepaskan: 2024-12-10 17:12:17
asal
557 orang telah melayarinya

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
}
Salin selepas log masuk

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}
Salin selepas log masuk

struktur yang dijangkakan ialah:

Test{A: "1", B: "b", C: "3"}
Salin selepas log masuk

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)
Salin selepas log masuk

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}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan