Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyahkod Tatasusunan JSON dengan Jenis Data Campuran dalam Go?

Bagaimanakah Saya Boleh Menyahkod Tatasusunan JSON dengan Jenis Data Campuran dalam Go?

Barbara Streisand
Lepaskan: 2024-11-26 10:06:10
asal
832 orang telah melayarinya

How Can I Decode JSON Arrays with Mixed Data Types in Go?

Menyahkod Tatasusunan dengan Jenis Campuran dalam JSON

Apabila berurusan dengan tatasusunan JSON yang mengandungi nilai pelbagai jenis, adalah penting untuk mempertimbangkan cara untuk menyahmarshal mereka ke dalam program Go dengan berkesan. Tatasusunan Go memerlukan jenis yang ditakrifkan secara eksplisit, yang menimbulkan cabaran apabila mengendalikan jenis nilai yang berbeza-beza.

Penyelesaian: Menggunakan antara muka{}

Penyelesaian terletak pada penggunaan antara muka{} , jenis khas dalam Go yang boleh menyimpan nilai apa-apa jenis. Dengan menggunakan tatasusunan{} antara muka, kami membenarkan fleksibiliti menyimpan nilai jenis yang berbeza dalam tatasusunan yang sama.

Contoh Pelaksanaan

Pertimbangkan contoh JSON berikut:

{"key": ["NewYork", 123]}
Salin selepas log masuk

Untuk menyahmarshal JSON ini menggunakan antara muka{}, kami boleh mentakrifkan data tersuai struktur:

type UntypedJson map[string][]interface{}
Salin selepas log masuk

Jenis ini mewakili peta daripada rentetan kepada tatasusunan antara muka{}, membenarkan kemungkinan untuk menyimpan nilai apa-apa jenis.

Menyahmarshall JSON

Untuk menyahmarshal JSON, kita boleh menggunakan json.Unmarshal fungsi:

var ut UntypedJson
json.Unmarshal([]byte(jsonString), &ut)
Salin selepas log masuk

Pembolehubah ut kini akan mengandungi data yang tidak dimarshall sebagai jenis UntypedJson. Kekunci peta sepadan dengan kekunci objek JSON dan nilai tatasusunan memegang nilai jenis yang berbeza.

Contoh Taman Permainan

Contoh lengkap dengan taman permainan Go terbenam boleh ditemui di sini:

const j = `{"NYC": ["NewYork",123]}`

type UntypedJson map[string][]interface{}

func main() {
    ut := UntypedJson{}
    fmt.Println(json.Unmarshal([]byte(j), &ut))
    fmt.Printf("%#v", ut)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahkod Tatasusunan JSON dengan Jenis Data Campuran 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