Rumah >pembangunan bahagian belakang >Golang >Mengapa struct Go saya tidak menyahkod JSON dengan betul?

Mengapa struct Go saya tidak menyahkod JSON dengan betul?

Patricia Arquette
Patricia Arquetteasal
2024-11-19 10:25:02180semak imbas

Why is my Go struct not decoding JSON correctly?

Menyahkod JSON menjadi Go Struct

Dalam Go, menghuraikan fail JSON ke dalam struct memerlukan penggunaan pakej pengekodan/json. Walau bagaimanapun, penghuraian struktur JSON yang salah boleh membawa kepada hasil yang tidak dijangka.

Pertimbangkan coretan kod yang disediakan di bawah:

var settings struct {
    serverMode bool
    sourceDir  string
    targetDir  string
}

func main() {
    // ...
}

Dengan fail konfigurasi JSON:

{
    "serverMode": true,
    "sourceDir": ".",
    "targetDir": "."
}

Anda mungkin menghadapi output yang membingungkan:

false  
(false and two empty strings)

Isu ini timbul kerana elemen struktur tidak dieksport. Secara lalai, elemen struktur yang bermula dengan huruf kecil tidak dapat dilihat oleh pengekod/penyahkod JSON. Untuk menyelesaikan masalah ini, eksport elemen struct dengan menggunakan huruf besar pada huruf pertamanya:

var settings struct {
    ServerMode bool `json:"serverMode"`
    SourceDir  string `json:"sourceDir"`
    TargetDir  string `json:"targetDir"`
}

Mengeksport elemen struct memastikan pengekod/penyahkod JSON boleh mengakses dan menyahkod nilai struct. Ini akan menghasilkan penghuraian yang betul bagi fail konfigurasi JSON ke dalam struct.

Atas ialah kandungan terperinci Mengapa struct Go saya tidak menyahkod JSON dengan betul?. 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