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
Patricia Arquetteasal
2024-12-18 07:11:11143semak imbas

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"
  ]
}

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)

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
  }
}

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!

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