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!