Marshaling Dynamic JSON Field Tag in Go
Apabila menjana JSON untuk fail Terraform menggunakan format JSON, anda mungkin menghadapi cabaran menggunakan kekunci JSON dinamik untuk sumber dengan nama rawak atau berubah-ubah. Ini timbul kerana teg medan Terraform untuk JSON marshalling memerlukan pengecam statik.
Secara tradisinya, seseorang mungkin mempertimbangkan untuk menggunakan kod tersuai untuk melancarkan JSON mereka sendiri, bagaimanapun, menggunakan keupayaan marshalling sedia ada adalah lebih baik. Timbul persoalan: bagaimana anda boleh mencipta kunci JSON dinamik dengan teg medan Go?
Penyelesaian
Malangnya, menggunakan teg medan untuk menjana kunci JSON dinamik tidak boleh dilakukan dalam Go . Walau bagaimanapun, penyelesaian alternatif wujud: menggunakan peta.
Menggunakan Peta
Peta dalam Go membenarkan kekunci dinamik, menjadikannya sesuai untuk situasi ini. Berikut ialah contoh:
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { // Your instance properties here }
Dalam contoh ini, medan AWSInstance dalam struct Sumber ialah peta menggunakan kekunci rentetan dinamik untuk menyimpan nilai AWSInstance individu.
Contoh Penggunaan
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ // Initialize your instance properties }, // ... add other instances with dynamic keys }, }
Taman permainan Contoh
Anda boleh meneroka contoh interaktif di Go Playground: https://go.dev/play/p/e9d2O-cLsjX
Atas ialah kandungan terperinci Bagaimanakah saya boleh Marshal Dynamic JSON Field Tag dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!