Bagaimana untuk Mengendalikan Tatasusunan Bersarang dalam Go JSON Unmarshalling?

Patricia Arquette
Lepaskan: 2024-11-05 16:10:03
asal
976 orang telah melayarinya

How to Handle Nested Arrays in Go JSON Unmarshalling?

Golang JSON: Mengendalikan Tatasusunan Bersarang dengan Menyahmarshalling

Dalam Go, apabila bekerja dengan tatasusunan JSON bersarang selepas unmarshalling, adalah penting untuk memahami ralat "antara muka jenis {} tidak menyokong pengindeksan." Ralat ini timbul apabila anda cuba mengakses elemen dalam tatasusunan JSON yang disimpan dalam pembolehubah{} antara muka.

Untuk menyelesaikan isu ini, anda perlu menggunakan penegasan jenis untuk menukar pembolehubah{} antara muka kepada pembolehubah jenis tatasusunan yang mendasari.

Perwakilan{} Antara Muka dalam Modul JSON

Modul JSON mewakili tatasusunan sebagai hirisan []antaramuka{} dan kamus sebagai peta[rentetan]antaramuka{ } memetakan apabila menyahkod ke dalam pembolehubah{} antara muka.

Mengakses Elemen Bersarang dengan Penegasan Jenis

Tanpa semakan ralat, anda boleh menavigasi tatasusunan JSON menggunakan penegasan jenis seperti berikut :

<code class="go">objects := result["objects"].([]interface{})
first := objects[0].(map[string]interface{})
fmt.Println(first["ITEM_ID"])</code>
Salin selepas log masuk

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penegasan jenis ini boleh panik jika jenis tidak sepadan. Untuk mengelakkan isu ini, anda boleh menggunakan borang dua pemulangan dan semak ralat:

<code class="go">objects, ok := result["objects"].([]interface{})
if !ok {
    // Handle error here
}</code>
Salin selepas log masuk

Menyahkod ke dalam Struktur untuk Akses yang Dipertingkat

Jika JSON data mengikut format yang konsisten, penyelesaian yang lebih cekap ialah menyahkodnya kepada jenis berstruktur. Contohnya, berdasarkan data yang disediakan:

<code class="go">type Result struct {
    Query   string `json:"query"`
    Count   int    `json:"count"`
    Objects []struct {
        ItemId      string `json:"ITEM_ID"`
        ProdClassId string `json:"PROD_CLASS_ID"`
        Available   int    `json:"AVAILABLE"`
    } `json:"objects"`
}</code>
Salin selepas log masuk

Dengan menyahkod ke dalam struktur ini, anda boleh mengakses ID item secara terus menggunakan result.Objects[0].ItemId. Pendekatan ini menghapuskan keperluan untuk penegasan jenis dan menyediakan kaedah selamat jenis untuk mengakses elemen bersarang.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Tatasusunan Bersarang dalam Go JSON Unmarshalling?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!