Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah saya Boleh Menyahkod JSON dengan Struktur Pembolehubah dalam Go?

Bagaimanakah saya Boleh Menyahkod JSON dengan Struktur Pembolehubah dalam Go?

Patricia Arquette
Lepaskan: 2025-01-01 01:58:11
asal
661 orang telah melayarinya

How Can I Decode JSON with a Variable Structure in Go?

Menyahkod JSON dengan Struktur Pembolehubah

Apabila bekerja dengan data JSON, mungkin sukar untuk menangani struktur data yang berbeza-beza. Dalam kes sedemikian, kaedah konvensional seperti json.Unmarshal() menggunakan struct tetap menjadi tidak praktikal. Berikut ialah penyelesaian untuk senario ini:

Penyelesaian:Unmarshal ke dalam map[string]interface{}

Daripada bergantung pada struct yang telah ditetapkan, kita boleh unmarshal JSON ke dalam jenis peta [rentetan]antara muka{} generik. Ini membolehkan kami mengendalikan data JSON dengan struktur yang berbeza-beza.

Pertimbangkan JSON berikut:

{ "votes": { "option_A": "3" } }
Salin selepas log masuk

Untuk menambah kunci "kira" pada JSON ini, kami boleh menyahmarshalkannya seperti berikut:

package main

import (
    "encoding/json"
)

func main() {
    in := []byte(`{ "votes": { "option_A": "3" } }`)
    var raw map[string]interface{}
    if err := json.Unmarshal(in, &raw); err != nil {
        panic(err)
    }
    raw["count"] = 1
    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }
    println(string(out))
}
Salin selepas log masuk

Pendekatan ini membolehkan kami mengubah suai struktur JSON dengan mudah tanpa terikat kepada model data tetap. Jenis peta[rentetan]antara muka{} memberikan fleksibiliti dalam mengendalikan struktur JSON dinamik.

Atas ialah kandungan terperinci Bagaimanakah saya Boleh Menyahkod JSON dengan Struktur Pembolehubah dalam Go?. 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