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"}
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) } }
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!