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

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

Linda Hamilton
Lepaskan: 2024-12-04 00:48:10
asal
698 orang telah melayarinya

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

Menyahmarshalling Objek JSON Bersarang sebagai Rentetan atau Tatasusunan Byte

Menyahmarshalling JSON boleh disesuaikan untuk mengendalikan objek bersarang dengan cara tertentu. Dalam soalan itu, matlamatnya adalah untuk menghuraikan objek JSON, mengekalkan objek bersarang sebagai rentetan atau tatasusunan bait dan mengelakkan penetapan medan automatik.

Untuk mencapai ini, pakej pengekodan/json menyediakan json.RawMessage taip. Seperti yang diterangkan dalam dokumentasi, json.RawMessage ialah objek JSON yang dikodkan mentah yang boleh digunakan untuk menangguhkan atau prakiraan penyahkodan JSON.

Begini cara menggunakan json.RawMessage untuk mengendalikan objek bersarang dalam rentetan JSON yang disediakan:

package main

import (
    "encoding/json"
    "fmt"
)

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

func main() {
    var bar Bar

    err := json.Unmarshal([]byte(`{
        "id": 15,
        "foo": { "foo": 123, "bar": "baz" }
    }`), &bar)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", bar)
}
Salin selepas log masuk

Dalam kes ini, medan foo struct Bar akan mengandungi bait JSON mentah yang mewakili objek bersarang, dan bukannya menghuraikannya ke dalam struct Go. Outputnya akan kelihatan seperti ini:

{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 mengawal cara objek JSON bersarang dikendalikan semasa unmarshalling, membolehkan lebih fleksibiliti dalam saluran paip pemprosesan data anda.

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