Heim > Backend-Entwicklung > Golang > Wie dekodiere ich JSON mit dynamisch verschachtelten Schlüsseln in Go?

Wie dekodiere ich JSON mit dynamisch verschachtelten Schlüsseln in Go?

Mary-Kate Olsen
Freigeben: 2024-11-25 12:01:15
Original
770 Leute haben es durchsucht

How to Decode JSON with Dynamic Nested Keys in Go?

JSON Nested Dynamic Structures Go Decoding

In diesem Szenario enthält die JSON-Antwort dynamische Schlüssel innerhalb des verschachtelten „sms“-Objekts. Herkömmliche Methoden zur Strukturdekodierung schlagen aufgrund der unbekannten Telefonnummern als Schlüssel fehl.

Lösung: Karten und dynamische Schlüsselverarbeitung

Um solche Daten effektiv zu deserialisieren, ist eine Kartendatenstruktur erforderlich beschäftigt ist. Der geänderte Code unten führt eine Map[string]SMSPhone ein, um das „sms“-Objekt zu modellieren:

type SMSPhone struct {
    Status     string `json:"status"`
    StatusCode int    `json:"status_code"`
    StatusText string `json:"status_text"`
}

type SMSSendJSON struct {
    Status     string              `json:"status"`
    StatusCode int                 `json:"status_code"`
    Sms        map[string]SMSPhone `json:"sms"`
    Balance    float64             `json:"balance"`
}
Nach dem Login kopieren

Unmarshaling-Prozess

Mit dieser Map an Ort und Stelle erfolgt das Unmarshaling Der Prozess kann jetzt die dynamischen Telefonnummern korrekt verarbeiten:

var result SMSSendJSON

if err := json.Unmarshal([]byte(src), &result); err != nil {
    panic(err)
}
Nach dem Login kopieren

Beispiel Ausgabe

Die Ergebniskarte enthält die Telefonnummern als Schlüssel und die zugehörigen SMSPhone-Strukturen:

{Status:OK StatusCode:100 Sms:map[79035671233:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79105432212:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79607891234:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения}] Balance:2676.18}
Nach dem Login kopieren

Dieser Ansatz ermöglicht die effiziente Dekodierung von JSON-Antworten mit dynamisch verschachtelten Strukturen.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich JSON mit dynamisch verschachtelten Schlüsseln in Go?. 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