Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyahmarshal JSON dengan Ruang dalam Nama Utama Menggunakan `pengekodan/json` Go?

Bagaimanakah Saya Boleh Menyahmarshal JSON dengan Ruang dalam Nama Utama Menggunakan `pengekodan/json` Go?

Mary-Kate Olsen
Lepaskan: 2024-12-25 07:57:10
asal
516 orang telah melayarinya

How Can I Unmarshal JSON with Spaces in Key Names Using Go's `encoding/json`?

JSON Key Names with Spaces: Unmarshalling Made Possible

Deserialisasi data JSON dengan kunci kompleks yang mengandungi ruang selalunya boleh menimbulkan cabaran semasa unmarshalling. Mari kita siasat contoh khusus menggunakan pengekodan/pustaka json dalam Go.

Masalah:

Pertimbangkan skema JSON berikut:

[
  {"Na me": "Platypus", "Order": "Monotremata"},
  {"Na me": "Quoll", "Order": "Dasyuromorphia"}
]
Salin selepas log masuk

Menggunakan pengekodan standard/pustaka json untuk menyahmarshal data ini ke dalam Go berikut struct:

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

menghasilkan medan "Nama" kosong disebabkan oleh ruang dalam kekunci JSON.

Punca:

Ruang dalam kekunci JSON mengelirukan proses unmarshalling. Perpustakaan cuba memadankan kekunci "Na me" dengan medan dalam struct Animal, tetapi tiada medan sepadan.

Penyelesaian:

Untuk menyelesaikan isu ini , pastikan teg medan struct dalam tag json menyatakan nama kunci yang betul, termasuk ruang:

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

Dengan ini penandaan yang disemak, proses unmarshalling boleh berjaya memetakan kekunci JSON ke medan struct yang betul, menghasilkan output yang dijangkakan:

[
  {Name:Platypus Order:Monotremata}
  {Name:Quoll Order:Dasyuromorphia}
]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahmarshal JSON dengan Ruang dalam Nama Utama Menggunakan `pengekodan/json` 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