Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membezakan Antara Medan Kosong dan Hilang Apabila Menyahmarshall JSON dalam Go?

Bagaimanakah Saya Boleh Membezakan Antara Medan Kosong dan Hilang Apabila Menyahmarshall JSON dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-14 19:55:12450semak imbas

How Can I Differentiate Between Empty and Missing Fields When Unmarshalling JSON in Go?

Membezakan Nilai Void daripada Medan Tidak Ditentukan dalam Go Unmarshaling

Menyahmarshalling data JSON di Golang boleh menjadi mudah, tetapi membezakan antara nilai void dan medan tidak ditentukan nilai boleh menjadi satu cabaran. Artikel ini menangani isu ini, menyediakan penyelesaian untuk membezakan antara kedua-duanya.

Dalam contoh yang disediakan, kami mempunyai sepotong struct Kategori, di mana setiap kategori mempunyai medan Nama dan Penerangan. Apabila menyahmarshaling data JSON ke dalam kepingan ini, kami menghadapi senario di mana kedua-dua kategori B dan kategori C mempunyai medan Penerangan kosong. Walau bagaimanapun, kami ingin mengetahui sama ada terdapat cara untuk membezakan sama ada Perihalan kategori B ditentukan sebagai rentetan kosong atau langsung tidak terdapat dalam data JSON.

Kuncinya adalah untuk mengisytiharkan medan Perihalan sebagai penunjuk kepada rentetan:

type Category struct {
    Name        string
    Description *string
}

Dengan menggunakan penuding, jika medan JSON hadir dengan nilai rentetan kosong, ia akan ditetapkan kepada penuding yang menghala ke rentetan kosong (*""). Sebaliknya, jika medan tidak terdapat dalam JSON, penunjuk akan dibiarkan sifar ().

Output yang dikemas kini menunjukkan pembezaan ini:

[{Name:A Description:0x1050c150} {Name:B Description:<nil>} {Name:C Description:0x1050c158}]

Di sini, kategori A Perihalan tidak kosong, Perihalan kategori B adalah sifar (menunjukkan medan yang tidak ditentukan), dan Perihalan kategori C ialah rentetan kosong (menunjukkan nilai kosong yang ditentukan).

Teknik ini membolehkan anda membezakan antara nilai kosong (tiada) dan medan yang tidak ditentukan (penunjuk tiada), membolehkan anda menyesuaikan tingkah laku program anda dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membezakan Antara Medan Kosong dan Hilang Apabila Menyahmarshall 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