Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mewakili Tatasusunan JSON dengan Kekunci Dinamik dalam Go Struct?

Bagaimana untuk Mewakili Tatasusunan JSON dengan Kekunci Dinamik dalam Go Struct?

Barbara Streisand
Lepaskan: 2024-12-08 19:49:11
asal
244 orang telah melayarinya

How to Represent a JSON Array with Dynamic Keys in a Go Struct?

Go Struct Representation untuk Tatasusunan JSON dengan Kekunci Dinamik

Pertimbangkan fail JSON yang mengandungi tatasusunan:

[
  {"a" : "1"},
  {"b" : "2"},
  {"c" : "3"}
]
Salin selepas log masuk

Walaupun cuba menghuraikannya sebagai peta rentetan ke rentetan, ralat timbul:

json: cannot unmarshal array into Go value of type main.data
Salin selepas log masuk

Untuk menyelesaikan masalah ini, kami memerlukan struktur Go yang mencerminkan format tatasusunan JSON.

Pendekatan yang betul boleh didapati di sini: https://play.golang.org /p/8nkpAbRzAD

type mytype []map[string]string

func main() {
    var data mytype
    file, err := ioutil.ReadFile("test.json")
    if err != nil {
        log.Fatal(err)
    }
    err = json.Unmarshal(file, &data)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(data)
}
Salin selepas log masuk

Takrifan ini mengisytiharkan mytype sebagai kepingan peta, sejajar dengan struktur tatasusunan JSON. Ia membenarkan penghuraian dan perwakilan yang betul bagi data JSON dalam struct Go.

Atas ialah kandungan terperinci Bagaimana untuk Mewakili Tatasusunan JSON dengan Kekunci Dinamik dalam Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan