Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menghuraikan Kekunci JSON Dinamik dan Mengekstrak Medan Khusus dalam Go?

Bagaimana untuk Menghuraikan Kekunci JSON Dinamik dan Mengekstrak Medan Khusus dalam Go?

Susan Sarandon
Lepaskan: 2025-01-04 04:54:40
asal
117 orang telah melayarinya

How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?

Penghuraian Kunci JSON Dinamik di Golang

Dalam bidang penghuraian JSON, kadangkala seseorang menghadapi cabaran kekunci dinamik pada peringkat atas rentetan JSON. Katakan kita mempunyai JSON berikut:

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`
Salin selepas log masuk

Tugasnya ialah untuk mengekstrak nilai untuk "nama" dan "umur" daripada JSON ini, tetapi kunci "bvu62fu6dq" adalah dinamik dan berbeza dari kes ke kes.

Satu pendekatan ialah mentakrifkan struct yang memuatkan kunci dinamik ini struktur:

type Info struct {
   UniqueID map[string]string
 }
Salin selepas log masuk

Walau bagaimanapun, struktur ini menghadapi cabaran dalam mengendalikan pengekstrakan sebenar "nama" dan "umur."

Untuk menghuraikan struktur JSON dinamik sedemikian dengan berkesan, kami boleh memanfaatkan kuasa daripada pakej "pengekodan/json" di Golang. Berikut ialah penyelesaiannya:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

type Info map[string]Person
Salin selepas log masuk

Persediaan ini menggunakan pendekatan yang lebih fleksibel dengan menggunakan peta yang dikunci oleh kekunci peringkat atasan dinamik (cth., "bvu62fu6dq"). Struktur "Orang" merangkum data yang kami cari untuk ekstrak daripada setiap sub-objek dinamik (cth., "nama" dan "umur").

Dengan persediaan ini, menyahkod JSON dan mengekstrak nilai tertentu menjadi mudah :

var info Info

err := json.Unmarshal([]byte(j), &info)
if err != nil {
    // Handle error
}

fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)
Salin selepas log masuk

Penyelesaian komprehensif ini bukan sahaja mengendalikan kekunci JSON peringkat atas yang dinamik tetapi juga menyokong pengekstrakan medan tertentu (cth., "nama" dan "umur") daripada setiap sub-objek.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Kekunci JSON Dinamik dan Mengekstrak Medan Khusus 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