Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengulangi Objek JSON Bersarang dengan Cekap dalam Go?

Bagaimana untuk Mengulangi Objek JSON Bersarang dengan Cekap dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-27 12:55:11
asal
612 orang telah melayarinya

How to Efficiently Iterate Over Nested JSON Objects in Go?

Memusingkan Objek JSON dengan Objek Bersarang

Apabila berurusan dengan data JSON, adalah perkara biasa untuk menemui objek yang mengandungi objek atau tatasusunan bersarang. Mengulangi struktur ini boleh menjadi tugas yang rumit dalam Go.

Dalam contoh yang diberikan, kami mempunyai input JSON dengan berbilang peringkat sarang. Tugasnya adalah untuk mengulangi objek dan mengekstrak pasangan nilai kunci sebagai rentetan.

Menggunakan Penegasan Jenis dan Fungsi Rekursif

Pendekatan yang disyorkan ialah menggunakan penegasan jenis dan fungsi rekursif. Fungsi rekursif boleh turun melalui struktur JSON yang kompleks, secara rekursif memanggil dirinya sendiri pada setiap objek atau tatasusunan bersarang.

Berikut ialah contoh fungsi rekursif yang merentasi struktur JSON bersarang dan mencetak pasangan nilai kunci:

func parseMap(m map[string]interface{}) {
    for key, val := range m {
        switch val.(type) {
        case map[string]interface{}:
            parseMap(val.(map[string]interface{}))
        case []interface{}:
            parseArray(val.([]interface{}))
        default:
            fmt.Println(key, ":", val)
        }
    }
}

func parseArray(arr []interface{}) {
    for i, val := range arr {
        switch val.(type) {
        case map[string]interface{}:
            parseMap(val.(map[string]interface{}))
        case []interface{}:
            parseArray(val.([]interface{}))
        default:
            fmt.Println("Index:", i, ":", val)
        }
    }
}
Salin selepas log masuk

Dalam contoh ini, fungsi parseMap dipanggil secara rekursif pada peta bersarang, dan Fungsi parseArray dipanggil secara rekursif pada tatasusunan bersarang. Dengan menggunakan penegasan jenis, kami boleh menentukan jenis setiap nilai dan mengendalikannya dengan sewajarnya.

Menjalankan Kod

Untuk menjalankan kod, anda boleh menyahmarshal input JSON ke dalam peta menggunakan json .Fungsi unmarshal. Kemudian, panggil fungsi parseMap, lulus peta unmarshalled sebagai hujah. Output akan dicetak, memaparkan pasangan nilai kunci yang diekstrak.

Kesimpulan

Pendekatan menggunakan penegasan jenis dan fungsi rekursif ini menyediakan cara yang berkaedah dan cekap untuk melintasi dan memeriksa nilai secara bersarang struktur JSON. Dengan memahami struktur data dan menggunakan teknik ini, anda boleh mengekstrak dan memproses pasangan nilai kunci dengan berkesan untuk analisis atau pemprosesan selanjutnya.

Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Objek JSON Bersarang dengan Cekap 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