Panic: JSON Unmarshal Array into Go Struct
JSON API에서 데이터를 구문 분석하려고 할 때 다음 오류가 발생했습니다. "panic: json: 배열을 main.Structure 유형의 Go 값으로 역마샬링할 수 없습니다." JSON 배열을 Go 구조체로 역마샬링할 때 문제가 발생합니다.
사용자 코드:
type Structure struct { stuff []interface{} } func main() { // ... decoded := &Structure{} err = json.Unmarshal(body, decoded) }
예상 결과:
코드가 인터페이스 목록을 반환할 것으로 예상했습니다. object.
실제 결과:
대신 JSON 배열을 Structure Go 값으로 언마샬링할 수 없다는 오류를 받았습니다.
해결책:
이 문제를 해결하려면 다음 두 가지를 고려하세요. 접근 방식:
슬라이스에 대한 비정렬화:
행 바꾸기:
decoded := &Structure{}
다음으로:
var data []interface{}
이렇게 하면 JSON 배열이 다음 조각으로 비정렬화됩니다. 인터페이스.
구조체 조각에 대한 비정렬화:
응답 데이터 구조에 대한 특정 구조체를 만듭니다. 예를 들면 다음과 같습니다.
type Tick struct { ID string Name string Symbol string Rank string Price_USD string }
그런 다음 다음 구조체의 일부를 비정렬화합니다.
var data []Tick err = json.Unmarshal(body, &data)
위 내용은 JSON이 배열을 Go 구조체로 역마샬링하면 패닉이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!