Heim > Backend-Entwicklung > Golang > Wie kann ich verschachtelte JSON-Objekte als Strings oder Byte-Arrays in Go entmarshalieren?

Wie kann ich verschachtelte JSON-Objekte als Strings oder Byte-Arrays in Go entmarshalieren?

Linda Hamilton
Freigeben: 2024-12-04 00:48:10
Original
698 Leute haben es durchsucht

How Can I Unmarshal Nested JSON Objects as Strings or Byte Arrays in Go?

Unmarshalling verschachtelter JSON-Objekte als Strings oder Byte-Arrays

JSON-Unmarshalling kann angepasst werden, um verschachtelte Objekte auf bestimmte Weise zu behandeln. In der Frage besteht das Ziel darin, ein JSON-Objekt zu analysieren, ein verschachteltes Objekt als Zeichenfolge oder Byte-Array beizubehalten und eine automatische Feldzuweisung zu vermeiden.

Um dies zu erreichen, stellt das Paket „encoding/json“ die json.RawMessage bereit Typ. Wie in der Dokumentation beschrieben, ist json.RawMessage ein rohcodiertes JSON-Objekt, das zur Verzögerung oder Vorabberechnung der JSON-Dekodierung verwendet werden kann.

So verwenden Sie json.RawMessage, um verschachtelte Objekte in der bereitgestellten JSON-Zeichenfolge zu verarbeiten:

package main

import (
    "encoding/json"
    "fmt"
)

type Bar struct {
    ID  int64           `json:"id"`
    Foo json.RawMessage `json:"foo"`
}

func main() {
    var bar Bar

    err := json.Unmarshal([]byte(`{
        "id": 15,
        "foo": { "foo": 123, "bar": "baz" }
    }`), &bar)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", bar)
}
Nach dem Login kopieren

In diesem Fall enthält das foo-Feld der Bar-Struktur die rohen JSON-Bytes, die die Verschachtelung darstellen Objekt, anstatt es in eine Go-Struktur analysieren zu lassen. Die Ausgabe sieht folgendermaßen aus:

{ID:15 Foo:[123 32 34 102 111 111 34 58 32 49 50 51 44 32 34 98 97 114 34 58 32 34 98 97 122 34 32 125]}
Nach dem Login kopieren

Durch die Verwendung von json.RawMessage können Sie steuern, wie verschachtelte JSON-Objekte beim Unmarshalling behandelt werden, was für mehr Flexibilität in Ihren Datenverarbeitungspipelines sorgt.

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte JSON-Objekte als Strings oder Byte-Arrays in Go entmarshalieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage