Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menggunakan Nama Medan Berbeza untuk Pengekodan MongoDB dan JSON dalam Go Structs?

Bagaimanakah Saya Boleh Menggunakan Nama Medan Berbeza untuk Pengekodan MongoDB dan JSON dalam Go Structs?

DDD
Lepaskan: 2024-12-03 01:06:10
asal
851 orang telah melayarinya

How Can I Use Different Field Names for MongoDB and JSON Encoding in Go Structs?

Mengatasi Had dalam Penandaan Struktur untuk Pengekodan MongoDB dan JSON

Apabila mengakses data daripada pangkalan data MongoDB dan kemudiannya mengekodkannya kepada JSON, anda mungkin menghadapi cabaran jika anda mahu untuk menggunakan nama medan yang berbeza untuk setiap format. Sebagai contoh, walaupun MongoDB mungkin memerlukan medan bernama "pageId", anda mungkin lebih suka mengekodnya sebagai "pageId" dalam JSON.

Definisi Teg Berbilang: Usaha Yang Salah Faham

Percubaan awal anda untuk mentakrifkan berbilang tanda nama untuk struct mengakibatkan kegagalan. Anda cuba menggunakan koma sebagai pemisah rentetan tag:

type Page struct {
    PageId string                 `bson:"pageId",json:"pageId"`
    Meta   map[string]interface{} `bson:"meta",json:"pageId"`
}
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini tidak betul.

Laluan Menuju Kejayaan: Melepaskan Kuasa Ruang

Untuk berjaya mentakrifkan berbilang tag nama dalam struct, anda mesti menggunakan ruang sebagai pemisah rentetan tag. Begini caranya:

type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"meta"`
}
Salin selepas log masuk

Memahami Rasional

Dokumentasi untuk pakej reflect dengan jelas menyatakan bahawa rentetan tag hendaklah terdiri daripada rentetan bukan kosong dengan pasangan kunci-nilai. Setiap pasangan nilai kunci dipisahkan oleh ruang dan nilai dipetik menggunakan sintaks literal rentetan Go.

Each value is quoted using U+0022 '"' characters and Go string literal syntax.
Salin selepas log masuk

Dengan mengikuti konvensyen ini, anda boleh mentakrifkan berbilang tag nama dengan berkesan untuk struct anda dan mencapai pengekodan yang diingini tingkah laku.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Nama Medan Berbeza untuk Pengekodan MongoDB dan JSON dalam Go Structs?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan