Heim > Artikel > Backend-Entwicklung > Wie entmarshaliere ich verschachteltes JSON, ohne dessen Struktur zu kennen?
Unmarshalieren von verschachteltem JSON ohne Kenntnis der Struktur
Wenn Sie mit einem Schlüsselwertspeicher arbeiten, der JSON-Dokumente mit unterschiedlichen Schemata enthält, wird dies zu einer Herausforderung Entpacken Sie die JSON-Daten in bestimmte Strukturen, ohne vorher deren Struktur zu kennen. In diesem Artikel werden Methoden zur Lösung dieses Problems untersucht und Lösungen vorgeschlagen.
Methode 1: Unmarshalieren zur Schnittstelle
Um JSON-Dokumente mit unbekannten Strukturen zu verarbeiten, können Sie sie in eine entmarshalieren Schnittstellentyp, z. B. „map[string]interface{}“. Dadurch können Sie als Wörterbuch auf die zugrunde liegenden Daten zugreifen, ohne eine bestimmte Struktur definieren zu müssen.
Durch Unmarshalling des Foo-Namespace der obersten Ebene in eine Map[string]*json.RawMessage können Sie den verschachtelten JSON abrufen Daten. Sie müssen jedoch immer noch den Typ der Daten im foo-Namespace bestimmen, um sie korrekt in eine Struktur zu entmarsmulieren.
Methode 2: Regex-Typextraktion
Eine Alternative Methode besteht darin, die Typzeichenfolge aus den JSON-Daten zu extrahieren und einen regulären Ausdruck zu verwenden, um den Strukturtyp zu bestimmen. Sobald der Typ bekannt ist, können Sie die json.RawMessage in die entsprechende Struktur entmarshalieren.
Wiederholte Unmarshals
Ob wiederholte Unmarshals ein Problem darstellen, hängt von den Leistungsanforderungen von ab Ihre Bewerbung. Wenn die Geschwindigkeit von entscheidender Bedeutung ist, kann es effizienter sein, das Unmarshalling direkt in eine bestimmte Struktur durchzuführen, anstatt eine Zwischenschnittstelle zu verwenden. Bei kleinen Datensätzen oder der gelegentlichen Verwendung ist die Leistungseinbuße jedoch möglicherweise nicht signifikant.
Update
Basierend auf dem bereitgestellten Update werden zwei mögliche Lösungen vorgeschlagen:
a) Kopieren und Unmarshalieren
b) Regex und Unmarshal
Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich verschachteltes JSON, ohne dessen Struktur zu kennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!