Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menghuraikan Struktur JSON Kompleks Dengan Berkesan Menggunakan `json.Unmarshal` Go?

Bagaimanakah Saya Boleh Menghuraikan Struktur JSON Kompleks Dengan Berkesan Menggunakan `json.Unmarshal` Go?

Patricia Arquette
Lepaskan: 2024-12-18 07:11:11
asal
141 orang telah melayarinya

How Can I Effectively Parse Complex JSON Structures Using Go's `json.Unmarshal`?

Menghuraikan JSON Kompleks dengan Go Unmarshal

Dalam Go, pakej pengekodan/json menyediakan fungsi json.Unmarshal untuk menghuraikan data JSON. Data ini boleh dibongkar ke dalam struktur yang dipratentukan atau jenis antara muka{} untuk mengulang struktur data yang tidak dijangka. Walau bagaimanapun, menghuraikan JSON kompleks boleh mencabar.

Sebagai contoh, pertimbangkan JSON berikut:

{
  "k1": "v1",
  "k2": "v2",
  "k3": 10,
  "result": [
    [
      ["v4", "v5", {"k11": "v11", "k22": "v22"}],
      ...
      ["v4", "v5", {"k33": "v33", "k44": "v44"}]
    ],
    "v3"
  ]
}
Salin selepas log masuk

Untuk menghuraikan JSON ini menggunakan json.Unmarshal, kita boleh mencipta pembolehubah{} antara muka dan simpan hasil yang dihuraikan di dalamnya:

type MyData struct {
  v1 string
  v2 string
  v3 int
  result [][]MySubData
  result2 string
}

type MySubData struct {
  v1 string
  v2 string
  result map[string]string
}

var f interface{}
err := json.Unmarshal(b, &f)
Salin selepas log masuk

Selepas menyahmarshaling, pembolehubah f akan menjadi peta dengan kekunci rentetan dan nilai antara muka kosong. Untuk mengakses data ini, kami menggunakan penegasan jenis untuk menukar f ke dalam peta[rentetan]antara muka{} dan berulang melaluinya:

m := f.(map[string]interface{})
for k, v := range m {
  switch vv := v.(type) {
    case string:
      // Handle string values
    case int:
      // Handle integer values
    case []interface{}:
      // Handle array values
    default:
      // Handle unknown types
  }
}
Salin selepas log masuk

Pendekatan ini membolehkan kami bekerja dengan struktur data JSON yang tidak dijangka sambil mengekalkan jenis keselamatan. Untuk butiran lanjut, rujuk artikel asal tentang JSON dan Go.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Struktur JSON Kompleks Dengan Berkesan Menggunakan `json.Unmarshal` 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