Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menggunakan Nama Medan Berbeza untuk Pengekodan MongoDB dan JSON dalam Go Structs?
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"` }
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"` }
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.
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!