> 백엔드 개발 > Golang > Go에서 동적 중첩 키를 사용하여 JSON을 디코딩하는 방법은 무엇입니까?

Go에서 동적 중첩 키를 사용하여 JSON을 디코딩하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-25 12:01:15
원래의
744명이 탐색했습니다.

How to Decode JSON with Dynamic Nested Keys in Go?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿