Aliasis Teg JSON di Golang
Di Golang, teg struct json digunakan untuk menentukan nama medan JSON yang sepadan dengan medan struct. Walau bagaimanapun, adakah mungkin untuk menetapkan berbilang nama kepada satu medan?
Jawapannya adalah ya, tetapi tidak dengan pengekodan/pakej json perpustakaan standard. Untuk mencapai matlamat ini, anda boleh menggunakan perpustakaan JSON pihak ketiga seperti github.com/json-iterator/go.
Menggunakan jsoniter
Dengan jsoniter, anda boleh menentukan berbilang teg JSON menggunakan sifat newtag. Berikut ialah contoh:
package main import ( "fmt" "github.com/json-iterator/go" ) type TestJson struct { Name string `json:"name" newtag:"newname"` Age int `json:"age" newtag:"newage"` } func main() { var json = jsoniter.ConfigCompatibleWithStandardLibrary data := TestJson{} data.Name = "zhangsan" data.Age = 22 byt, _ := json.Marshal(&data) fmt.Println(string(byt)) // {"name":"zhangsan","age":22} var newJson = jsoniter.Config{ TagKey: "newtag", }.Froze() byt, _ = newJson.Marshal(&data) fmt.Println(string(byt)) // {"newname":"zhangsan","newage":22} }
Dalam contoh ini, struct TestJson mentakrifkan berbilang teg JSON untuk medan Nama dan Umur. Apabila bersiri menggunakan pakej json perpustakaan standard, ia menggunakan tag json lalai. Walau bagaimanapun, apabila menggunakan jsoniter dengan konfigurasi newtag, ia menggunakan nilai newtag yang ditentukan.
Atas ialah kandungan terperinci Bolehkah Golang Menggunakan Berbilang Tag JSON untuk Medan Struktur Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!