>백엔드 개발 >Golang >인터페이스를 맵으로 변환할 때 \'인터페이스 변환: 인터페이스 {}는 지도[문자열]인터페이스 {}가 아니라 []인터페이스 {}입니다\' 오류가 발생하는 이유는 무엇입니까?

인터페이스를 맵으로 변환할 때 \'인터페이스 변환: 인터페이스 {}는 지도[문자열]인터페이스 {}가 아니라 []인터페이스 {}입니다\' 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-02 01:48:31384검색

Why am I getting an

인터페이스 변환 오류: 잘못된 매핑

인터페이스를 맵으로 변환하려고 할 때 JSON 구문 분석 중에 오류가 발생하여 메시지가 나타납니다. "인터페이스 변환: 인터페이스 {}는 map[string]인터페이스가 아니라 []인터페이스 {}입니다. {}."

설명

오류는 데이터 유형 간의 불일치를 가리킵니다. 제공된 코드 조각에서 다음 줄은 유기적 결과 목록에서 결과를 추출합니다.

result := fmt.Sprintf("%v", response["organic_results"].(map[string]interface{})["title"])

response["organic_results"]가 맵이고 해당 값이 map[string으로 캐스팅되어야 한다고 가정합니다. ]인터페이스{}를 사용하여 특정 제목 값에 액세스합니다. 그러나 response["organic_results"]의 실제 데이터 유형은 맵이 아닌 인터페이스 조각([]interface{})입니다.

해결책

오류를 해결하려면 그에 따라 코드를 수정해야 합니다.

for _, item := range response["organic_results"].([]interface{}) {
    fmt.Sprintf("%v", item.(map[string]interface{})["title"])
}

여기서 루프는 각 항목을 반복합니다. []인터페이스{} 슬라이스의 항목이며, 각 항목은 제목 값을 추출하기 위해 map[string]인터페이스{}로 캐스팅됩니다.

위 내용은 인터페이스를 맵으로 변환할 때 \'인터페이스 변환: 인터페이스 {}는 지도[문자열]인터페이스 {}가 아니라 []인터페이스 {}입니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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