Heim >Backend-Entwicklung >Golang >So verschachteln Sie Golang JSON
In Golang müssen bei der Verwendung von JSON-Objekten manchmal mehrere JSON-Objekte verschachtelt werden. In diesem Artikel wird kurz vorgestellt, wie die Verschachtelung von JSON-Objekten in Golang implementiert wird.
JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das häufig für die Front-End- und Back-End-Datenübertragung verwendet wird. In Golang kann JSON mithilfe des in die Standardbibliothek integrierten Pakets „encoding/json“ kodiert und dekodiert werden.
Das Folgende ist ein einfaches JSON-Datenbeispiel, das Buchinformationen darstellt:
{ "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "price": 5.99, "publisher": { "name": "Pan Books", "address": "London" } }
Im obigen Beispiel ist das „Publisher“-Objekt innerhalb des „Book“-Objekts verschachtelt. Um die Verschachtelung von JSON-Objekten in Golang zu implementieren, müssen Sie eine Struktur definieren und dann die in der Standardbibliothek bereitgestellten Methoden verwenden, um JSON-Daten zu kodieren oder zu dekodieren.
Zum Beispiel können Sie eine Struktur mit dem Namen „Book“ definieren, um Buchinformationen darzustellen:
type Book struct { Title string `json:"title"` Author string `json:"author"` Price float64 `json:"price"` Publisher struct { Name string `json:"name"` Address string `json:"address"` } `json:"publisher"` }
Im obigen Code wird die verschachtelte Struktur „Publisher“ verwendet, um die Veröffentlichungsinformationen des Buches darzustellen. Sie müssen jedem Feld in der Struktur ein „json“-Tag hinzufügen, damit beim Kodieren und Dekodieren von JSON-Daten der Feldname korrekt mit dem JSON-Schlüsselnamen abgeglichen werden kann.
Verwenden Sie die Methoden Marshal und Unmarshal, die vom Paket „encoding/json“ bereitgestellt werden, um Golang-Strukturen in JSON-Daten bzw. JSON-Daten in Golang-Strukturen zu konvertieren. Sie können beispielsweise den folgenden Code verwenden, um die Struktur „Book“ in JSON-Daten zu konvertieren:
book := Book{ Title: "The Hitchhiker's Guide to the Galaxy", Author: "Douglas Adams", Price: 5.99, Publisher: struct { Name string `json:"name"` Address string `json:"address"` }{ Name: "Pan Books", Address: "London", }, } jsonBytes, err := json.Marshal(book) if err != nil { fmt.Println(err) } fmt.Println(string(jsonBytes))
Die Ausgabe des obigen Codes lautet:
{ "title":"The Hitchhiker's Guide to the Galaxy", "author":"Douglas Adams", "price":5.99, "publisher":{ "name":"Pan Books", "address":"London" } }
Sie können wiederum den folgenden Code verwenden, um die JSON-Daten in die zu konvertieren Struktur „Buch“:
jsonStr := `{ "title": "The Hitchhiker's Guide to the Galaxy", "author": "Douglas Adams", "price": 5.99, "publisher": { "name": "Pan Books", "address": "London" } }` var book Book if err := json.Unmarshal([]byte(jsonStr), &book); err != nil { fmt.Println(err) } fmt.Printf("%+v ", book)
Das Ausgabeergebnis des obigen Codes ist:
{Title:The Hitchhiker's Guide to the Galaxy Author:Douglas Adams Price:5.99 Publisher:{Name:Pan Books Address:London}}
Zusammenfassung:
In Golang können Sie Strukturen verwenden, um eine verschachtelte Verarbeitung von JSON-Objekten zu implementieren. Sie müssen das Tag „json“ in der Struktur verwenden, um die Entsprechung zwischen Feldnamen und JSON-Schlüsselnamen anzugeben. Verwenden Sie die in der Standardbibliothek bereitgestellten Marshal- und Unmarshal-Methoden, um Golang-Strukturen in JSON-Daten bzw. JSON-Daten in Golang-Strukturen zu konvertieren.
Das obige ist der detaillierte Inhalt vonSo verschachteln Sie Golang JSON. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!