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
Susan Sarandonasal
2025-01-04 04:54:40123semak imbas

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"
           .....
           .....}
      }`

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
 }

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

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)

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!

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