>백엔드 개발 >Golang >Go에서 JSON int64를 구문 분석할 때 Null 값을 처리하는 방법은 무엇입니까?

Go에서 JSON int64를 구문 분석할 때 Null 값을 처리하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-28 14:56:11176검색

How to Handle Null Values When Parsing JSON int64s in Go?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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