Rumah > pembangunan bahagian belakang > Golang > Mengapa `json.Marshal` Go tidak berfungsi dengan Struktur yang Mengandungi Nama Medan Huruf Kecil?

Mengapa `json.Marshal` Go tidak berfungsi dengan Struktur yang Mengandungi Nama Medan Huruf Kecil?

Mary-Kate Olsen
Lepaskan: 2024-12-21 07:36:11
asal
937 orang telah melayarinya

Why Doesn't Go's `json.Marshal` Work with Structs Containing Lowercase Field Names?

Mengapa Go Gagal Menghasilkan JSON untuk Structs dengan Nama Medan Huruf Kecil?

Untuk bermula, Go menggunakan konvensyen sarung untuk membezakan antara pengecam peribadi dan awam dalam pakej. Dalam contoh yang disediakan, medan (m_ip, m_type, dan m_serial) struct Mesin adalah peribadi. Oleh itu, ia tidak boleh diakses oleh perpustakaan luaran seperti json.Marshal di luar pakej yang mana ia ditakrifkan.

Setelah menukar nama medan kepada huruf besar (MachIp, MachType dan MachSerial) dalam coretan kod kedua, mereka menjadi umum dan boleh dieksport. Ini membolehkan json.Marshal berjaya menjana perwakilan JSON.

Walau bagaimanapun, jika anda lebih suka menggunakan nama medan huruf kecil, anda boleh menentukan nama medan JSON yang dikehendaki secara manual dengan menggunakan teg medan. Contohnya:

type Machine struct {
    MachIp     string `json:"m_ip"`
    MachType   string `json:"m_type"`
    MachSerial string `json:"m_serial"`
}
Salin selepas log masuk

Dengan menganotasi medan dengan tag json, anda pada asasnya mengarahkan pengekod JSON untuk menggunakan nama medan yang ditentukan semasa menjana output JSON.

Atas ialah kandungan terperinci Mengapa `json.Marshal` Go tidak berfungsi dengan Struktur yang Mengandungi Nama Medan Huruf Kecil?. 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