Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyahmarshal JSON ke dalam Peta Go tanpa Gelung?

Bagaimana untuk Menyahmarshal JSON ke dalam Peta Go tanpa Gelung?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 21:33:02195semak imbas

 How to Unmarshal JSON into a Go Map without Loops?

Nyahmarshal JSON ke dalam Peta

Soalan ini menangani cabaran memuatkan data JSON ke dalam peta Go. Khususnya, fail JSON ringkas yang mengandungi tatasusunan rentetan disediakan, dan matlamatnya adalah untuk menyahmarshal senarai buah-buahan ke dalam peta dengan kunci rentetan dan nilai{} antara muka. Soalan itu juga bertanya sama ada terdapat cara yang cekap untuk mengelak daripada menggunakan gelung untuk memasukkan elemen ke dalam peta.

Untuk menjawab soalan ini, kami boleh memanfaatkan pakej pengekodan/json Go yang berkuasa. Dengan menyahmarshaling data JSON terus ke peta[rentetan][]rentetan, kami boleh memintas keperluan untuk lelaran dan sisipan manual:

<code class="go">package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
}</code>

Kod ini dengan cekap menukarkan JSON kepada peta yang mempunyai kunci "buah-buahan " peta ke senarai rentetan. Ia mengelakkan gelung dan sisipan manual, menjadikannya ringkas dan berprestasi. Sebagai alternatif, anda juga boleh menggunakan map[string][]interface{} sebagai jenis sasaran jika anda lebih suka mengekalkan nilai sebagai antara muka generik.

Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal JSON ke dalam Peta Go tanpa Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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