Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membaca Fail JSON sebagai Objek JSON dalam Go?

Bagaimana untuk Membaca Fail JSON sebagai Objek JSON dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-11 10:19:02764semak imbas

How to Read JSON Files as JSON Objects in Go?

Membaca Fail JSON sebagai Objek JSON dalam Go

Untuk membaca fail JSON sebagai objek JSON dalam Go, adalah penting untuk memahami konsep penunjuk dan jenis penegasan.

Membaca JSON Fail

plan, err := ioutil.ReadFile(filename)
if err != nil {
    log.Fatal(err)
}

Nyahmarshaling Data

Untuk menyimpan objek JSON, anda memerlukan penuding kepada pembolehubah, seperti yang dinyatakan dalam dokumentasi Go :

var data interface{}
if err := json.Unmarshal(plan, &data); err != nil {
    log.Fatal(err)
}

Ini menyimpan objek JSON dalam lokasi memori yang ditunjukkan oleh data.

Mengakses Objek JSON

Memandangkan data ialah antara muka, anda mesti menggunakan penegasan jenis untuk mengakses nilai asasnya:

switch data := data.(type) {
case map[string]interface{}:
    // Loop through the map as a JSON object
    for key, value := range data {
        fmt.Println(key, value)
    }
case []interface{}:
    // Loop through the slice as a JSON array
    for _, value := range data {
        fmt.Println(value)
    }
default:
    // Handle other types as needed
}

Marshaling untuk Nyahpepijat

Jika anda perlu melihat JSON objek sebagai rentetan untuk tujuan penyahpepijatan, anda boleh menggunakan:

jsonString, err := json.Marshal(data)
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(jsonString))

Nota:

  • Pastikan fail JSON diformat dengan betul dan mengandungi JSON yang sah data.
  • Gunakan struktur data khusus untuk mengisi JSON anda apabila boleh, bukannya kosong antara muka.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Fail JSON sebagai Objek JSON 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