Heim > Backend-Entwicklung > Golang > Wie kann ich mehrere JSON-Objekte ohne Klammern analysieren?

Wie kann ich mehrere JSON-Objekte ohne Klammern analysieren?

DDD
Freigeben: 2025-01-01 13:25:10
Original
295 Leute haben es durchsucht

How to Parse Multiple JSON Objects in Go Without Brackets?

Parsen mehrerer JSON-Objekte in Go

Beim Umgang mit JSON-Daten kommt es häufig zu Situationen, in denen mehrere JSON-Objekte von einem Server zurückgegeben werden , und nicht ein einzelnes, in Klammern eingeschlossenes Objekt. Das Parsen solcher Daten stellt seine ganz eigenen Herausforderungen dar.

Wenn Sie beispielsweise eine Antwort im folgenden Format haben:

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

Sie können das Paket „encoding/json“ nicht direkt zum Parsen dieser Daten verwenden , da es erwartet, dass Klammern die Objekte einschließen.

Um dieses Problem zu lösen, können Sie den Typ json.Decoder aus dem Paket „encoding/json“ nutzen. Mit diesem Typ können Sie JSON-Daten aus einem Bytestrom dekodieren, wodurch er für die Verarbeitung mehrerer JSON-Objekte geeignet ist.

Hier ist ein Beispiel dafür, wie Sie json.Decoder zum Parsen mehrerer JSON-Objekte verwenden können:

package main

import (
    "encoding/json"
    "fmt"
    "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

In diesem Beispiel verwenden wir einen strings.NewReader, um einen Bytestrom aus unserer Eingabezeichenfolge zu erstellen. Anschließend erstellen wir einen json.Decoder, um diesen Stream zu dekodieren.

Innerhalb einer Schleife rufen wir wiederholt dec.Decode(&doc) auf, um jedes JSON-Objekt in unsere Doc-Struktur zu dekodieren. Die Schleife wird bis zum Ende des Streams fortgesetzt, an diesem Punkt wird err auf io.EOF gesetzt.

Durch die Verwendung von json.Decoder können wir mehrere JSON-Objekte effektiv analysieren, auch wenn sie nicht in Klammern eingeschlossen sind Wir sind in der Lage, eine breite Palette von JSON-Datenformaten zu verarbeiten.

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

Quelle:php.cn
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