Heim > Backend-Entwicklung > Golang > Wie entmarshaliere ich verschachteltes JSON mit unbekannter Struktur?

Wie entmarshaliere ich verschachteltes JSON mit unbekannter Struktur?

Patricia Arquette
Freigeben: 2024-11-02 22:48:02
Original
888 Leute haben es durchsucht

How to Unmarshal Nested JSON with Unknown Structure?

Unmarshaling von verschachteltem JSON mit unbekannter Struktur

Wenn Sie mit einer Datenbank arbeiten, in der JSON-Dokumente mit unterschiedlichen Strukturen gespeichert sind, kann es schwierig sein, diese zu entmarshalieren Daten in bestimmte Strukturen umwandeln, ohne vorher die genaue Struktur zu kennen. Hier untersuchen wir zwei Ansätze, um dieses Problem anzugehen.

Überprüfen des Typs

Bevor wir die JSON-Daten entmarshalieren, müssen wir ihren Typ bestimmen. Dies kann mit einer der folgenden Methoden erreicht werden:

  • Unmarshaling in eine Map[string]interface{}: Durch Unmarshaling der json.RawMessage in eine Map können wir darauf zugreifen das Feld „Typ“, um den Typ der Daten zu identifizieren. Mit diesem Ansatz können wir wiederholte Unmarshals vermeiden.
  • Verwenden Sie einen regulären Ausdruck, um die Typzeichenfolge zu extrahieren: Wir können einen regulären Ausdruck verwenden, um nach dem Feld „Typ“ zu suchen und seinen Wert zu extrahieren. die dann mit bekannten Typen verglichen werden können.

Unmarshaling in eine bestimmte Struktur

Sobald wir den Typ der JSON-Daten bestimmt haben, können wir sie entmarshalieren in die entsprechende Struktur. In Ihrem Fall können Sie, wenn Sie die möglichen Typen im Voraus kennen, eine Reihe von if-else-Anweisungen oder eine Switch-Anweisung erstellen, um die Daten in der entsprechenden Struktur zu entpacken.

Wiederholte Unmarshals vermeiden

Um wiederholtes Unmarshalieren zu vermeiden, können Sie eine Kopie der json.RawMessage erstellen und diese zuerst in der Schnittstelle entmarshalieren. Sobald Sie den Typ kennen, können Sie die ursprüngliche json.RawMessage in die Struktur des bestimmten Typs entmarshalieren.

Verwenden eines regulären Ausdrucks zur Bestimmung des Typs

Wenn Sie möchten Wenn Sie einen regulären Ausdruck verwenden, können Sie die folgenden Schritte ausführen:

  1. Verwenden Sie die Funktion regexp.MustCompile, um einen regulären Ausdruck zu erstellen, der mit dem Feld „Typ“ übereinstimmt.
  2. Verwenden Sie den regulären Ausdruck. FindStringSubmatch-Funktion zum Extrahieren der Typzeichenfolge.
  3. Verwenden Sie die extrahierte Typzeichenfolge, um die geeignete Struktur für das Unmarshalling zu bestimmen.

Schlussfolgerung

Von Mit den oben genannten Ansätzen können Sie verschachtelte JSON-Daten effizient entmarshalieren, ohne deren genaue Struktur zu kennen. Dies ermöglicht mehr Flexibilität und Komfort beim Arbeiten mit dynamischen Datenquellen.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich verschachteltes JSON mit unbekannter Struktur?. 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