Heim  >  Artikel  >  Backend-Entwicklung  >  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
Mary-Kate OlsenOriginal
2024-11-25 12:01:15716Durchsuche

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"`
}

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)
}

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}

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!

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