>백엔드 개발 >Golang >JSON 데이터를 Go 맵으로 부분적으로 비정렬화하는 방법은 무엇입니까?

JSON 데이터를 Go 맵으로 부분적으로 비정렬화하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-22 15:51:11471검색

How to Partially Unmarshal JSON Data into a Go Map?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.