혼합 데이터 유형이 포함된 JSON 배열 역마샬링
다양한 데이터 유형의 값이 포함된 JSON 배열을 역마샬링하는 작업은 종종 어려울 수 있습니다. 예를 들어, 다음 JSON 배열을 고려해 보세요.
{["NewYork",123]}
문제:
먼저 제공된 JSON이 구문상 올바르지 않다는 점에 유의하는 것이 중요합니다. JSON 객체에는 각 값에 대한 키가 필요하므로 올바른 표현은 {"key":["NewYork",123]} 또는 간단히 ["NewYork",123]입니다.
게다가 JSON을 처리할 때 여러 데이터 유형으로 구성된 배열의 경우 Go 배열에 지정된 유형이 필요할 때 문제가 발생합니다. 이로 인해 이러한 상황을 어떻게 처리해야 할지 고민하게 될 수 있습니다.
해결책:
이 문제를 해결하는 핵심은 유형 인터페이스{}를 사용하는 것입니다. 명시적인 유형 변환 없이도 다양한 유형의 값을 처리할 수 있습니다. 다음은 작동 방식을 보여주는 코드 예시입니다.
import ( "encoding/json" "fmt" ) const j = `{"NYC": ["NewYork",123]}` type UntypedJson map[string][]interface{} func main() { ut := UntypedJson{} fmt.Println(json.Unmarshal([]byte(j), &ut)) fmt.Printf("%#v", ut) }
이 예시에서는 문자열을 인터페이스{}의 조각에 매핑하는 사용자 지정 유형으로 UntypedJson을 사용합니다. 인터페이스{} 유형을 활용하면 JSON 배열 내에서 혼합 데이터 유형을 쉽게 처리할 수 있습니다.
프로그램의 출력은 다음과 같습니다.
<nil> map[string][]interface{}{"NYC": \["NewYork" 123]}
결론:
인터페이스{} 유형을 활용하면 이 접근 방식을 통해 다양한 데이터가 포함된 JSON 배열을 효과적으로 역마샬링할 수 있습니다. 유형입니다.
위 내용은 Go에서 데이터 유형이 혼합된 JSON 배열을 역정렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!