Heim > Backend-Entwicklung > Golang > Wie kann ich mehrere aufeinanderfolgende JSON-Objekte in Go effizient analysieren?

Wie kann ich mehrere aufeinanderfolgende JSON-Objekte in Go effizient analysieren?

DDD
Freigeben: 2024-12-23 05:08:14
Original
480 Leute haben es durchsucht

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

Parsen mehrerer JSON-Objekte in Go

Beim Auftreffen mehrerer JSON-Objekte, z. B. solche, die von Servern im Format zurückgegeben werden:

{"something":"foo"}
{"something-else":"bar"}
Nach dem Login kopieren

Das Parsen kann sich als Herausforderung erweisen. Das folgende Code-Snippet zeigt Schwierigkeiten bei der Verwendung von Strings.Replace:

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

Eine alternative Lösung besteht in der Verwendung eines json.Decoder für eine effektive Dekodierung:

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)
    }
}
Nach dem Login kopieren

Dieser Ansatz gewährleistet eine erfolgreiche Analyse von mehreren JSON-Objekten, auch in Szenarien wie Common Crawl-Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere aufeinanderfolgende JSON-Objekte in Go effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage