Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyahmarshal Objek JSON Bersarang sebagai Rentetan atau Kepingan Bait dalam Go?

Bagaimanakah Saya Boleh Menyahmarshal Objek JSON Bersarang sebagai Rentetan atau Kepingan Bait dalam Go?

Linda Hamilton
Lepaskan: 2024-12-17 02:18:25
asal
540 orang telah melayarinya

How Can I Unmarshal Nested JSON Objects as Strings or Byte Slices in Go?

Menyahmarakkan Objek Bersarang JSON sebagai Rentetan atau Kepingan Bait

Dalam data JSON, objek bersarang menyediakan tahap maklumat tambahan. Walau bagaimanapun, apabila menyahkarang data ini ke dalam struktur Go, anda mungkin mahu menganggap objek ini sebagai data mentah dan bukannya nilai yang dihuraikan.

Untuk mencapai ini, pakej pengekodan/json menawarkan penyelesaian: json.RawMessage.

Menggunakan RawMessage untuk Merawat Objek Bersarang sebagai Mentah Data

json.RawMessage ialah jenis yang mewakili data JSON yang dikodkan. Ia membolehkan anda melambatkan penyahkodan JSON atau prakiraan pengekodan JSON.

Ini amat berguna apabila anda ingin mengendalikan objek bersarang sebagai rentetan atau kepingan bait. Begini cara anda boleh menggunakannya:

import (
    "encoding/json"
    "fmt"
)

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

func main() {
    // Example JSON with a nested object
    jsonStr := []byte(`{
        "id"  : 15,
        "foo" : { "foo": 123, "bar": "baz" }
    }`)

    var bar Bar

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

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

Contoh Output

{Id:15 Foo:[123 32 34 102 111 111 34 58 32 49 50 51 44 32 34 98 97 114 34 58 32 34 98 97 122 34 32 125]}
Salin selepas log masuk

Dengan menggunakan json.RawMessage, anda boleh merawat objek bersarang sebagai rentetan mentah atau kepingan bait. Ini membolehkan anda memproses data dengan lebih lanjut atau menyimpannya untuk kegunaan kemudian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahmarshal Objek JSON Bersarang sebagai Rentetan atau Kepingan Bait 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