Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Menghuraikan Tatasusunan Peta JSON ke dalam Go Structs?

Bagaimanakah Saya Menghuraikan Tatasusunan Peta JSON ke dalam Go Structs?

Barbara Streisand
Lepaskan: 2024-12-14 00:10:09
asal
861 orang telah melayarinya

How Do I Parse JSON Arrays of Maps into Go Structs?

Menghuraikan Tatasusunan JSON ke dalam Struktur Data Go

Apabila berurusan dengan data JSON yang mengandungi tatasusunan, mungkin sukar untuk memilih struktur data Go yang sesuai untuk menghuraikan. Sebagai contoh, jika fail menyimpan tatasusunan pasangan nilai kunci, percubaan untuk menggunakan rentetan[rentetan]peta mungkin mengakibatkan ralat seperti "tidak boleh menyahmarshal tatasusunan ke dalam nilai Go jenis main.data."

Penyelesaiannya terletak pada mengenal pasti struktur JSON dengan tepat. Walaupun contoh yang diberikan kelihatan seperti tatasusunan, ia sebenarnya adalah tatasusunan peta. Fail itu sebaliknya harus menyerupai yang berikut untuk memadankan struktur rentetan[rentetan] peta:

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

Pertimbangkan coretan kod berikut yang menunjukkan menghuraikan tatasusunan peta ke dalam struct Go:

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
)

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

Apabila anda menjalankan kod ini dengan fail JSON yang sah, ia akan berjaya menghuraikan data ke dalam struktur yang dikehendaki, memberikan anda akses kepada pasangan nilai kunci dalam tatasusunan.

Atas ialah kandungan terperinci Bagaimanakah Saya Menghuraikan Tatasusunan Peta JSON ke dalam Go Structs?. 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