JSON 언마샬링의 동적 키 처리: GoLang
GoLang에서 JSON 데이터를 구조체로 언마샬링하는 것은 JSON의 키가 동적이거나 구조체의 특정 필드에 직접 매핑될 수 없습니다. 이 문서에서는 맵을 사용하여 동적 키 및 관련 값을 캡처하는 방법을 소개하여 이 문제에 대한 솔루션을 제시합니다.
문제 설명:
다음 구조체를 고려하세요.
type X struct { A string `json:"a_known_string"` B string `json:"b_known_string"` }
및 JSON 문자열:
"{ "any string" : { "a_known_string" : "some value", "b_known_string" : "another value" } }"
사용 구조체가 포함된 표준 JSON Unmarshal 함수는 동적 키인 "모든 문자열"을 캡처하지 않습니다.
맵을 사용한 솔루션:
이 문제를 해결하려면 다음을 수행할 수 있습니다. 맵을 사용하여 동적 키-값 쌍을 저장합니다. 예는 다음과 같습니다.
var m map[string]X err := json.Unmarshal([]byte(jsnStr), &m)
이 솔루션에서 m 변수는 키가 동적 문자열이고 값이 X 구조체의 인스턴스인 맵이 됩니다.
이 접근 방식 이를 통해 데이터의 구조화된 표현을 유지하면서 동적 키와 해당 값을 캡처할 수 있습니다.
플레이그라운드 예:
제공된 놀이터 예는 솔루션 사용을 보여줍니다.
https://go.dev/play/p/tZ27zKhI9Ct
위 내용은 Go에서 언마샬링하는 동안 동적 JSON 키를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!