Heim >Backend-Entwicklung >Golang >Wie entmarshalliere ich verschachtelte JSON-Objekte in benutzerdefinierte Typen in Golang?

Wie entmarshalliere ich verschachtelte JSON-Objekte in benutzerdefinierte Typen in Golang?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-15 16:07:03395Durchsuche

How to Unmarshall Nested JSON Objects into Custom Types in Golang?

Unmarshalling Nested JSON in Golang

Ein Golang-Neuling stellte eine Frage zum Unmarshalling komplexer JSON-Daten in eine strukturierte Karte und konzentrierte sich dabei insbesondere auf das Unmarshalling verschachtelter JSON-Objekte in benutzerdefinierte Typen.

Problemstellung

Die betreffenden JSON-Daten bestehen aus verschachtelten Objekten, die eine Geschichte und ihre Optionen darstellen. Es wurde erwartet, dass die für das Unmarshalling verwendete Kartendatenstruktur strukturierte Kontext- und Optionsdatentypen enthält, aber die resultierende Karte enthielt nur leere Werte.

Lösung

Das Problem, mit dem konfrontiert wurde Der Benutzer ist auf das Fehlen exportierter Feldnamen in seinen Datenstrukturen zurückzuführen. Um ein ordnungsgemäßes Marshalling und Unmarshalling zu ermöglichen, müssen Datenstrukturfelder exportiert werden, was ihre Zugänglichkeit außerhalb des Pakets anzeigt.

Durch das Hinzufügen von String-Tags zu den exportierten Feldnamen können die korrekten Feldbindungen zwischen den JSON-Daten und den JSON-Daten hergestellt werden Datenstrukturen. Hier ist die korrigierte Version des Codes:

type Context struct {

Das obige ist der detaillierte Inhalt vonWie entmarshalliere ich verschachtelte JSON-Objekte in benutzerdefinierte Typen in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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