Go에서 JSON을 맵으로 부분적으로 역마샬링하는 방법
Go에서 JSON 데이터를 역마샬링하는 것은 간단할 수 있지만 중첩된 데이터를 처리할 때 문제가 발생합니다. 키가 데이터 유형을 나타내는 객체입니다. 이 문제를 해결하려면 "encoding/json" 패키지를 활용할 수 있습니다.
제공된 코드에서 JSON 데이터를 map[string][]byte로 매핑하여 효과적으로 키로 변환하려고 합니다. -문자열과 원시 JSON의 값 쌍. 그러나 json.MapObject 함수가 존재하지 않아 이 솔루션을 실행할 수 없습니다.
대신 map[string]json.RawMessage를 활용하여 목표를 달성할 수 있습니다. RawMessage는 구문 분석되지 않은 JSON을 보유하는 불투명 유형입니다. 이 접근 방식을 사용하여 아래 코드는 제공된 JSON 데이터를 objmap 변수로 역마샬링합니다.
var objmap map[string]json.RawMessage err := json.Unmarshal(data, &objmap)
이제 objmap 내의 개별 키-값 쌍에 액세스하여 JSON 데이터를 추가로 구문 분석할 수 있습니다. 예를 들어 "sendMsg" 값을 구문 분석하려면:
var s sendMsg err = json.Unmarshal(objmap["sendMsg"], &s)
마찬가지로 "say" 값을 문자열로 구문 분석할 수 있습니다.
var str string err = json.Unmarshal(objmap["say"], &str)
참고: 적절한 언마샬링을 활성화하려면 sendMsg 구조체 내에서 변수를 내보내는 것을 잊지 마세요. 예를 들면 다음과 같습니다.
type sendMsg struct { User string Msg string }
https://play.golang.org/p/OrIjvqIsi4-에서 실제 예제를 찾을 수 있습니다.
위 내용은 JSON 데이터를 Go 맵으로 부분적으로 비정렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!