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

Wie kann man mehrere JSON-Objekte in Go effizient analysieren?

Barbara Streisand
Freigeben: 2024-12-22 02:56:12
Original
260 Leute haben es durchsucht

How to Efficiently Parse Multiple JSON Objects in Go?

Parsen mehrerer JSON-Objekte in Go

Das JSON-Parsen in Go wird mithilfe des Pakets „encoding/json“ vereinfacht. Während es mühelos Arrays von JSON-Objekten verarbeitet, entsteht die Herausforderung beim Parsen von JSON-Antworten mit mehreren Objekten, wie zum Beispiel:

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

Der bereitgestellte Code versucht, die Eingabe manuell umzuwandeln, indem er die }{-Vorkommen durch } ersetzt. {, aber dieser Ansatz ist unwirksam.

Um dieses Problem zu beheben, ist eine robustere Lösung mit einem json.Decoder erforderlich. Der Ansatz umfasst:

  1. Erstellen eines json.Decoder-Objekts aus der Eingabe.
  2. Iterieren über die Eingabe mithilfe der Decode-Methode des Decoders.
  3. Deserialisieren jedes JSON Objekt in eine benutzerdefinierte Struktur (z. B. Doc) umwandeln.

Hier ist ein Beispielimplementierung:

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

Diese Lösung verarbeitet mehrere JSON-Objekte in der Eingabe ordnungsgemäß und stellt deren genaue Analyse und Deserialisierung sicher.

Das obige ist der detaillierte Inhalt vonWie kann man mehrere 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage