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
Patricia Arquetteasal
2024-12-27 16:58:14180semak imbas

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

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

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}

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!

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