int64s의 JSON 구문 분석: Go에서 Null 값 처리
Go에서 JSON 스트림을 구문 분석할 때 Null 값을 처리하는 것이 어려울 수 있습니다. 특히 int64 유형을 다룰 때. 제공된 예제에서 설명한 것처럼 null 값이 포함된 JSON 개체를 int64 유형의 구조체 필드로 역마샬링하려고 하면 유형 불일치로 인해 오류가 발생합니다.
Null 주소에 대한 포인터 사용 값
이 문제에 대한 간단한 해결책은 int64에 대한 포인터를 사용하는 것입니다. 포인터는 null 값을 나타내는 nil이거나 관련 값이 있는 유효한 int64 인스턴스를 가리킬 수 있습니다. 이 접근 방식은 Go의 JSON 패키지에서 지원됩니다.
type World struct { Data *int64 }
int64에 대한 포인터를 사용하도록 위의 구조체 정의를 수정하면 이제 이전 오류 없이 JSON 데이터를 성공적으로 역마샬링할 수 있습니다. *int64를 사용하면 JSON 파서가 null 값을 nil 포인터로 나타낼 수 있습니다.
null을 Null이 아닌 값에 매핑
원하는 경우 null 값을 다음으로 매핑할 수 있습니다. -1 또는 MinValue와 같은 null이 아닌 값입니다. 이는 역마샬링 후 JSON 데이터를 사용자 정의 처리하여 달성할 수 있습니다. 예:
func MapNull(data *int64) int64 { if data == nil { return -1 } return *data }
정렬 해제 후 MapNull 함수를 호출하면 모든 null 값을 원하는 null이 아닌 표현으로 바꿀 수 있습니다.
결론
Go에서 int64 유형이 포함된 JSON 데이터를 구문 분석할 때 null 값을 처리하려면 포인터를 사용하면 됩니다. int64로. 이 기술을 사용하면 JSON 파서가 null 값을 나타내고 원래 데이터 구조를 보존할 수 있습니다. 필요한 경우 사용자 정의 사후 처리를 적용하여 Null 값을 Null이 아닌 대체 표현에 매핑할 수 있습니다.
위 내용은 Go에서 JSON int64를 구문 분석할 때 Null 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!