Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menambahkan Harta 'kiraan' pada Data JSON Dinamik dalam Go?

Bagaimanakah Saya Boleh Menambahkan Harta 'kiraan' pada Data JSON Dinamik dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-12-08 15:27:15482semak imbas

How Can I Add a

Menyahkod JSON dengan Struktur Dinamik

Apabila berurusan dengan data JSON yang tidak diketahui atau struktur yang berbeza-beza, ia menjadi mencabar untuk menyahkodnya menggunakan struct yang telah ditetapkan dalam Pergi. Untuk mengatasi isu ini, kami boleh menggunakan pendekatan yang lebih fleksibel.

Penyelesaian: Unmarshal into a Map

Pertama sekali, kami Unmarshal the JSON into a map[string]interface {}, iaitu struktur data fleksibel jenis dalam Go. Ini membolehkan kami mengakses sifat JSON sebagai rentetan dan nilai sepadannya sebagai antara muka generik.

Menambahkan Harta "kiraan"

Setelah JSON dinyahmarshall ke dalam peta , kita boleh memanipulasinya dengan bebas. Dalam kes ini, kita boleh menetapkan pasangan nilai kunci baharu dengan kunci "kiraan" dan nilainya ialah kiraan yang diingini.

Marshaling Back to JSON

Akhirnya , kami Marshal peta yang diubah suai kembali ke rentetan JSON. Proses ini melibatkan penyerikan peta ke dalam format JSON, yang akan menghasilkan output yang diingini dengan sifat "kiraan" tambahan.

Kod Contoh

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    in := []byte(`{ "votes": { "option_A": "3" } }`)

    // Unmarshal into a map
    var raw map[string]interface{}
    if err := json.Unmarshal(in, &raw); err != nil {
        panic(err)
    }

    // Add the "count" property
    raw["count"] = 1

    // Marshal back to JSON
    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }

    fmt.Println(string(out))
}

Output:

{"votes":{"option_A":"3"},"count":1}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambahkan Harta 'kiraan' pada Data JSON Dinamik 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