JSON 중첩 동적 구조 Go Decoding
이 시나리오에서 JSON 응답에는 중첩된 "sms" 개체 내에 동적 키가 포함되어 있습니다. 기존의 구조체 디코딩 방법은 키로 알 수 없는 전화번호로 인해 실패합니다.
해결책: 맵 및 동적 키 처리
이러한 데이터를 효과적으로 역직렬화하려면 맵 데이터 구조 고용되어 있습니다. 아래의 수정된 코드는 "sms" 개체를 모델링하기 위한 map[string]SMSPhone을 소개합니다.
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"` }
역마샬링 프로세스
이 맵을 사용하면 역마샬링이 수행됩니다. 이제 프로세스가 동적 전화를 올바르게 처리할 수 있습니다. 숫자:
var result SMSSendJSON if err := json.Unmarshal([]byte(src), &result); err != nil { panic(err) }
출력 예
결과 맵에는 키로 전화번호와 관련 SMS전화 구조가 포함됩니다.
{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}
이 접근 방식을 사용하면 동적 중첩 구조를 사용하여 JSON 응답을 효율적으로 디코딩할 수 있습니다.
위 내용은 Go에서 동적 중첩 키를 사용하여 JSON을 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!