Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengendalikan Kunci JSON dengan Spaces dalam Go?

Bagaimana untuk Mengendalikan Kunci JSON dengan Spaces dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-19 00:54:10354semak imbas

How to Handle JSON Keys with Spaces in Go?

Menyahmarshall JSON dengan Nama Utama yang Mengandungi Ruang

Dalam proses penyahserikatan JSON, anda mungkin menghadapi kesukaran semasa berurusan dengan data JSON yang merangkumi nama utama dengan ruang. Isu ini timbul apabila menggunakan pengekodan/pustaka json standard dalam Go. Perpustakaan bergelut untuk mentafsir kunci dengan ruang semasa cuba memetakan medan JSON kepada medan struktur.

Untuk menyelesaikan isu ini, pastikan spesifikasi teg JSON adalah betul. Tag json memetakan nama medan JSON kepada nama medan struct. Apabila aksara ruang muncul dalam spesifikasi teg JSON selepas titik bertindih tetapi sebelum tanda petikan, pustaka tidak dapat memetakan medan JSON dengan betul ke medan struct.

Pertimbangkan kod contoh berikut:

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}

Dalam contoh ini, teg JSON untuk medan "Nama" tidak dinyatakan dengan betul dengan ruang selepas titik bertindih. Untuk menyelesaikan isu ini, alih keluar ruang dan nyatakan teg seperti berikut:

type Animal struct {
    Name  string `json:"Name"`
    Order string `json:"Order,omitempty"`
}

Dengan pengubahsuaian ini, perpustakaan JSON boleh berjaya memetakan nama medan JSON kepada nama medan struct, walaupun jika nama medan mengandungi ruang. Ini memastikan bahawa medan struct diisi dengan sewajarnya dengan nilai daripada data JSON.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Kunci JSON dengan Spaces 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