PHP Editor Apple akan memperkenalkan anda cara menukar peta Golang kepada struktur peta lain. Semasa proses pembangunan, kadangkala kita perlu melakukan beberapa operasi penukaran pada peta asal untuk memenuhi keperluan khusus. Sama ada penukaran jenis data atau penyusunan semula struktur, ia boleh dicapai melalui beberapa kaedah mudah. Artikel ini akan menganalisis proses ini secara terperinci untuk anda, membantu anda menguasai teknik ini dengan cepat dan meningkatkan kecekapan pembangunan. Mari kita terokai proses penukaran yang menarik ini bersama-sama!
Saya perlukan bantuan untuk menukar peta input ini kepada peta output. Saya cuba menggunakan suis/kes dan tidak berjaya. Terima kasih banyak-banyak!
Masukkan:
values{ "toto_voiture_brand": ad{ "citroen": "citroen", }, "toto_voiture_model": ad{ "citroen_toto": "c3", }, "toto_moto_brand": ad{ "kawasaki": "kawasaki", }, "toto_moto_model": ad{ "kawasaki_tata": "ninja 1000 sx", }, "toto_camion_brand": ad{ "renault": "renault", "peugeot": "peugeot", }, "toto_camion_model": ad{ "renault_toto": "j5", "peugeot_tata": "255", }, }, }
Output
Values{ "toto_voiture_model": { "Citroen": { {Value: "C3"}, }, }, "toto_moto_model": { "Kawasaki": { {Value: "Ninja 1000 SX"}, }, }, "toto_camion_model": { "RENAULT": { {Value: "J5"}, }, "PEUGEOT": { {Value: "255"}, }, }, }
Saya telah mencuba menggunakan kes suis dan gelung untuk dan peta. Tetapi saya tidak mempunyai peserta keputusan, saya tidak menemui cara untuk memadankan setiap peta, kunci dan nilai. Terima kasih banyak
Saya harus menggunakan kod berikut untuk mengurus perkara yang anda perlukan:
package main import ( "encoding/json" "fmt" "strings" ) type Output struct { Value string `json:"Value"` } func main() { // declare output output := make(map[string]map[string]Output, 0) // input input := make(map[string]map[string]string, 0) input["toto_voiture_brand"] = map[string]string{ "CITROEN": "CITROEN", } input["toto_voiture_model"] = map[string]string{ "CITROEN_toto": "C3", } input["toto_moto_model"] = map[string]string{ "KAWASAKI_tata": "Ninja 1000 SX", } input["toto_camion_model"] = map[string]string{ "RENAULT_toto": "J5", "PEUGEOT_tata": "255", } // transformation for k, v := range input { if strings.HasSuffix(k, "_model") { tempMap := make(map[string]Output, len(v)) for kk, vv := range v { key := strings.Split(kk, "_")[0] tempMap[key] = Output{ Value: vv, } } output[k] = tempMap } } data, _ := json.MarshalIndent(&output, "", "\t") fmt.Println(string(data)) }
Saya menambah beberapa komen dalam kod hanya untuk memisahkan pelbagai bahagian. Dua bahagian pertama hanya digunakan untuk menentukan pembolehubah input dan output.
Ambil apa yang berlaku dalam // conversion
开头的部分是成为函数的良好候选者,但我更愿意将其保留在 main
函数中以用于演示目的。让我回顾一下 loop
:
input
_model
, ia diambil kiratempmap
类型的本地范围映射[string]output yang mengandungi bilangan elemen yang betul yang ingin kami tambahkanv
(sebab itu kami berurusan dengan pemetaan bersarang) tempmap
output
)Bahagian terakhir hanya mencetak json yang bagus yang boleh dibaca dan diperiksa dengan mudah.
Sila ambil perhatian bahawa kod ini dipermudahkan hanya untuk menunjukkan cara mencapai matlamat anda, sila laraskannya sebelum masuk ke dalam pengeluaran.
Sila beritahu saya jika ini membantu, terima kasih!
Atas ialah kandungan terperinci Tukar peta golang kepada struktur peta yang lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!