Rumah > pembangunan bahagian belakang > Golang > Bagaimana Menstrim dan Menyahkod Tatasusunan JSON Besar dengan Cekap dalam Go?

Bagaimana Menstrim dan Menyahkod Tatasusunan JSON Besar dengan Cekap dalam Go?

Patricia Arquette
Lepaskan: 2024-12-16 02:18:09
asal
831 orang telah melayarinya

How to Efficiently Stream and Decode Large JSON Arrays in Go?

Menstrim Tatasusunan JSON untuk Data Besar

Menyahkod tatasusunan JSON yang besar ke dalam ingatan boleh menjadi masalah, yang membawa kepada isu ingatan. Untuk menangani perkara ini, penstriman elemen JSON ialah penyelesaian yang lebih cekap.

Pakej pengekodan/json dalam Go menyediakan mekanisme untuk menstrim elemen data JSON mengikut elemen. Berikut ialah contoh lanjutan:

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "strings"
)

func main() {
    const jsonStream = `
                [
                    {"Name": "Ed", "Text": "Knock knock."},
                    {"Name": "Sam", "Text": "Who's there?"},
                    {"Name": "Ed", "Text": "Go fmt."},
                    {"Name": "Sam", "Text": "Go fmt who?"},
                    {"Name": "Ed", "Text": "Go fmt yourself!"}
                ]
            `

    type Message struct {
        Name, Text string
    }

    dec := json.NewDecoder(strings.NewReader(jsonStream))

    // Read the opening bracket.
    t, err := dec.Token()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%T: %v\n", t, t)

    // Loop through the array elements.
    for dec.More() {
        var m Message

        // Decode the current element.
        err = dec.Decode(&m)
        if err != nil {
            log.Fatal(err)
        }

        fmt.Printf("%v: %v\n", m.Name, m.Text)
    }

    // Read the closing bracket.
    t, err = dec.Token()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%T: %v\n", t, t)
}
Salin selepas log masuk

Dalam contoh ini, kami secara eksplisit mengendalikan kurungan pembukaan dan penutup tatasusunan JSON dan menyahkod setiap elemen secara individu, membolehkan kami menstrim melalui data JSON dengan cekap tanpa overhed memori.

Atas ialah kandungan terperinci Bagaimana Menstrim dan Menyahkod Tatasusunan JSON Besar dengan Cekap dalam 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