Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyahkod Objek JSON Bersarang ke dalam Data Mentah dalam Go?

Bagaimana untuk Menyahkod Objek JSON Bersarang ke dalam Data Mentah dalam Go?

Patricia Arquette
Lepaskan: 2024-12-06 16:48:15
asal
212 orang telah melayarinya

How to Decode Nested JSON Objects into Raw Data in Go?

JSON Menyahkod Objek Bersarang menjadi Data Mentah

Dalam dunia penyahkodan JSON, ada kalanya anda mungkin menghadapi objek bersarang yang anda tidak perlukan sepenuhnya menghuraikan. Sebaliknya, anda mungkin lebih suka menganggapnya sebagai rentetan mentah atau tatasusunan bait. Berikut ialah kod sampel yang menunjukkan pendekatan ini:

package main

import (
    "encoding/json"
    "fmt"
)

type Bar struct {
    ID  int64           `json:"id"`
    Foo json.RawMessage `json:"foo"`
}

func main() {
    jsonStr := []byte(`{
        "id"  : 15,
        "foo" : { "foo": 123, "bar": "baz" }
    }`)

    var bar Bar

    if err := json.Unmarshal(jsonStr, &bar); err != nil {
        panic(err)
    }

    fmt.Printf("%+v\n", bar)
}
Salin selepas log masuk

Dalam contoh ini, struct Bar mengandungi dua medan: ID dan Foo. Medan ID ialah int64, manakala medan Foo diisytiharkan sebagai json.RawMessage. Jenis ini membolehkan kami menahan bait JSON yang dikaitkan dengan objek bersarang.

Apabila menyahkod JSON, medan RawMessage akan menyimpan bait JSON mentah yang mewakili objek bersarang. Ini termasuk mana-mana medan bersarang dalam objek itu, membolehkan anda mengaksesnya kemudian jika perlu.

Pendekatan ini berguna apabila anda ingin menangguhkan penghuraian bahagian tertentu JSON untuk menyimpan sumber pengiraan. Ia juga memberikan fleksibiliti yang lebih besar dalam mengendalikan objek bersarang tanpa perlu menentukan jenis tersuai untuk setiap objek.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Objek JSON Bersarang ke dalam Data Mentah 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