Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya menghuraikan tatasusunan JSON dalam Go?

Bagaimanakah saya menghuraikan tatasusunan JSON dalam Go?

Linda Hamilton
Linda Hamiltonasal
2024-11-19 20:23:03524semak imbas

How do I parse a JSON array in Go?

Cara Menghuraikan Tatasusunan JSON dalam Go

Dalam Go, pakej pengekodan/json menyediakan sokongan untuk membongkar data JSON ke dalam struktur Go. Untuk menghuraikan tatasusunan JSON, anda boleh menggunakan langkah berikut:

  1. Tentukan struct Go: Takrifkan struct yang mewakili bentuk elemen individu dalam JSON tatasusunan. Sebagai contoh, jika tatasusunan JSON mengandungi objek dengan medan nama dan harga, anda akan mentakrifkan struct berikut:

    type PublicKey struct {
        Name string
        Price string
    }

    Nota: Pastikan nama medan dalam struct sepadan dengan medan nama dalam tatasusunan JSON.

  2. Buat sekeping struct: Cipta kepingan jenis struct yang ditakrifkan untuk menyimpan data yang dihuraikan:

    var keys []PublicKey
  3. Unmarshal the JSON: Gunakan json.Unmarshal( ) berfungsi untuk menyahmarshal tatasusunan JSON ke dalam kepingan struct:

    err := json.Unmarshal([]byte(jsonStr), &keys)

    di mana jsonStr ialah data JSON yang akan dihuraikan.

  4. Kendalikan sebarang ralat: Semak sebarang ralat yang dihadapi semasa unmarshalling. Jika ralat berlaku, ia akan disimpan dalam pembolehubah ralat:

    if err != nil {
        // Handle the error
    }
  5. Akses data yang dihuraikan: Setelah tatasusunan JSON dihuraikan, anda boleh mengakses unsur-unsur individu kepingan structs:

    for _, key := range keys {
        fmt.Println(key.Name, key.Price)
    }

Contoh:

Kod berikut menunjukkan cara menghuraikan tatasusunan JSON menggunakan langkah di atas:

package main

import (
    "encoding/json"
    "fmt"
)

type PublicKey struct {
    Name string
    Price string
}

func main() {
    jsonStr := `[{"name":"Galaxy Nexus", "price":"3460.00"},{"name":"Galaxy Nexus", "price":"3460.00"}]`

    var keys []PublicKey
    err := json.Unmarshal([]byte(jsonStr), &keys)
    if err == nil {
        for _, key := range keys {
            fmt.Println(key.Name, key.Price)
        }
    } else {
        fmt.Println(err)
    }
}

Output:

Galaxy Nexus 3460.00
Galaxy Nexus 3460.00

Atas ialah kandungan terperinci Bagaimanakah saya menghuraikan tatasusunan 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