Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menghuraikan Berbilang Objek JSON Berturut-turut dengan Cekap dalam Go?

Bagaimanakah Saya Boleh Menghuraikan Berbilang Objek JSON Berturut-turut dengan Cekap dalam Go?

DDD
DDDasal
2024-12-23 05:08:14427semak imbas

How Can I Efficiently Parse Multiple Consecutive JSON Objects in Go?

Menghuraikan Berbilang Objek JSON dalam Go

Apabila menghadapi berbilang objek JSON, seperti yang dikembalikan daripada pelayan dalam format:

{"something":"foo"}
{"something-else":"bar"}

penghuraian boleh terbukti mencabar. Coretan kod berikut menunjukkan kesukaran yang dihadapi apabila menggunakan rentetan.Ganti:

correct_format := strings.Replace(string(resp_body), "}{", "},{", -1)
json_output := "[" + correct_format + "]"

Penyelesaian alternatif terletak pada penggunaan json.Decoder untuk penyahkodan yang berkesan:

package main

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

var input = `
{"foo": "bar"}
{"foo": "baz"}
`

type Doc struct {
    Foo string
}

func main() {
    dec := json.NewDecoder(strings.NewReader(input))
    for {
        var doc Doc

        err := dec.Decode(&doc)
        if err == io.EOF {
            // all done
            break
        }
        if err != nil {
            log.Fatal(err)
        }

        fmt.Printf("%+v\n", doc)
    }
}

Pendekatan ini memastikan penghuraian yang berjaya daripada berbilang objek JSON, walaupun dalam senario seperti data Common Crawl.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Berbilang Objek JSON Berturut-turut dengan Cekap 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