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
Lepaskan: 2024-12-23 05:08:14
asal
425 orang telah melayarinya

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"}
Salin selepas log masuk

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 + "]"
Salin selepas log masuk

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)
    }
}
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan