Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengubah Suai Objek JSON dengan Struktur Tidak Diketahui dalam Go?

Bagaimanakah Saya Boleh Mengubah Suai Objek JSON dengan Struktur Tidak Diketahui dalam Go?

Patricia Arquette
Lepaskan: 2024-12-27 16:58:14
asal
175 orang telah melayarinya

How Can I Modify a JSON Object with an Unknown Structure in Go?

Mengendalikan JSON dengan Struktur Tidak Diketahui: Menyahmarshaling dan Pengubahsuaian

Dalam banyak senario pengaturcaraan, berurusan dengan data JSON dengan struktur yang tidak diketahui boleh mencabar. Walau bagaimanapun, Go menyediakan penyelesaian untuk mengatasi halangan ini.

Pertimbangkan situasi di mana anda menerima rentetan JSON seperti ini:

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

Matlamat anda ialah menambah kunci "kira" baharu dengan nilai "1" kepada objek JSON. Walau bagaimanapun, memandangkan struktur JSON tidak dapat diramalkan, anda tidak boleh menggunakan fungsi json.Unmarshal standard dengan struct yang dipratentukan.

Untuk menangani cabaran ini, anda boleh menggunakan jenis peta[rentetan]antara muka{}. Ini membolehkan anda menyahmarshal JSON ke dalam peta generik, dengan kunci ialah rentetan dan nilai ialah antara muka yang boleh mewakili sebarang jenis data.

Kod menunjukkan cara untuk mencapai ini:

package main

import (
    "encoding/json"
    "fmt"
)

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)
    }

    fmt.Println(string(out))
}
Salin selepas log masuk

Dalam kod ini, kami menyahmarshal data JSON ke dalam peta mentah. Memandangkan struktur tidak diketahui, nilai diwakili sebagai antara muka.

Kami kemudiannya boleh mengubah suai peta dengan menambahkan pasangan nilai kunci baharu dengan "kira" sebagai kunci dan 1 sebagai nilai. Akhir sekali, kami menyusun semula peta yang diubah suai menjadi rentetan JSON menggunakan json.Marshal.

Output akan seperti yang dijangkakan:

{"votes":{"option_A":"3"},"count":1}
Salin selepas log masuk

Teknik ini menyediakan cara yang fleksibel untuk mengendalikan data JSON dengan struktur yang tidak diketahui, membolehkan anda mengubah suai dan memperkaya data mengikut keperluan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Objek JSON dengan Struktur Tidak Diketahui 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