Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengendalikan Pelbagai Jenis Nilai JSON Apabila Menyahmarshaling dalam Go?

Bagaimana untuk Mengendalikan Pelbagai Jenis Nilai JSON Apabila Menyahmarshaling dalam Go?

Patricia Arquette
Lepaskan: 2024-11-18 21:07:03
asal
772 orang telah melayarinya

How to Handle Varying JSON Value Types When Unmarshaling in Go?

Menyahmarshaling JSON dengan Pelbagai Jenis Nilai dalam Go

Dalam Go, JSON unmarshaling biasanya melibatkan pemetaan data JSON ke struct yang sepadan. Walau bagaimanapun, kesukaran timbul apabila struktur data boleh berbeza-beza, mempersembahkan nilai kunci sebagai tatasusunan objek atau rentetan.

Masalah:
API menyampaikan struktur data yang tidak konsisten, mengakibatkan dalam variasi nilai berpotensi untuk kunci: objek sebaris atau rujukan kepada objek (/obj1/is/at/this/path).

Penyelesaian:
Untuk mengendalikan kebolehubahan ini, pertimbangkan teknik berikut:

1. Nyahmarshal kepada Jenis Antara Muka:
Nyah marshal data JSON kepada struct yang mengandungi medan dengan jenis []antara muka{}. Ini akan membenarkan kedua-dua rentetan (dinyahkodkan sebagai rentetan) dan objek (dinyahkodkan sebagai peta[rentetan]antara muka{}) disimpan dalam tatasusunan.

Sampel Kod:

type Data struct {
    MyKey []interface{} `json:"mykey"`
}
Salin selepas log masuk

2. Penukaran Jenis untuk Pembezaan:
Setelah data dibuka, gunakan suis jenis untuk membezakan antara rentetan dan objek.

Sampel Kod:

for i, v := range data.MyKey {
    switch x := v.(type) {
    case string:
        fmt.Println("Got a string: ", x)
    case map[string]interface{}:
        fmt.Printf("Got an object: %#v\n", x)
    }
}
Salin selepas log masuk

Nota Tambahan:

  • Anda boleh memproses selanjutnya objek seperti yang diperlukan dengan mengakses struktur [rentetan]antara muka{} peta asas.
  • Pendekatan ini menyediakan fleksibiliti dalam mengendalikan potensi perubahan masa depan pada struktur data tanpa memerlukan sebarang pengekodan keras atau refleksi.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Pelbagai Jenis Nilai JSON Apabila Menyahmarshaling 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