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
Barbara Streisandasal
2024-11-26 10:06:10861semak imbas

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]}

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

type UntypedJson map[string][]interface{}

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)

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)
}

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!

Kenyataan:
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