Heim >Backend-Entwicklung >Golang >Wie kann ich verschachtelte JSON-Objekte in Go als Strings oder Byte-Slices entmarshalieren?
Unmarshalling verschachtelter JSON-Objekte als Strings oder Byte-Slices
In JSON-Daten stellen verschachtelte Objekte zusätzliche Informationsebenen bereit. Wenn Sie diese Daten jedoch in Go-Strukturen entmarshallen, möchten Sie diese Objekte möglicherweise als Rohdaten und nicht als analysierte Werte behandeln.
Um dies zu erreichen, bietet das Paket „encoding/json“ eine Lösung: json.RawMessage.
Verwenden von RawMessage, um verschachtelte Objekte als Raw zu behandeln Data
json.RawMessage ist ein Typ, der codierte JSON-Daten darstellt. Damit können Sie die JSON-Dekodierung verzögern oder eine JSON-Kodierung vorab berechnen.
Dies ist besonders nützlich, wenn Sie verschachtelte Objekte als Zeichenfolgen oder Byte-Slices verarbeiten möchten. So können Sie es verwenden:
import ( "encoding/json" "fmt" ) type Bar struct { Id int64 `json:"id"` Foo json.RawMessage `json:"foo"` } func main() { // Example JSON with a nested object jsonStr := []byte(`{ "id" : 15, "foo" : { "foo": 123, "bar": "baz" } }`) var bar Bar err := json.Unmarshal(jsonStr, &bar) if err != nil { panic(err) } fmt.Printf("%+v\n", bar) }
Beispielausgabe
{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]}
Durch die Verwendung von json.RawMessage können Sie das verschachtelte Objekt als Rohzeichenfolge oder behandeln Byte-Slice. Dies ermöglicht Ihnen, die Daten weiter zu verarbeiten oder für eine spätere Verwendung zu speichern.
Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte JSON-Objekte in Go als Strings oder Byte-Slices entmarshalieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!