>  기사  >  백엔드 개발  >  Golang에서 JSON 마샬링 중 오류를 어떻게 처리합니까?

Golang에서 JSON 마샬링 중 오류를 어떻게 처리합니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 17:19:25681검색

How do you Handle Errors During JSON Marshalling in Golang?

Golang JSON 마샬링의 오류 처리

JSON 데이터 구조는 순환 참조를 나타낼 수 없으며 Go의 json.Marshal 함수는 이를 처리할 수 없습니다. 결과적으로 순환 구조를 Marshal에 전달하면 무한 재귀 및 런타임 패닉이 발생합니다.

순환 구조 외에도 json.Marshal은 지원되지 않는 유형이나 유효하지 않은 값이 발생하는 상황에서 nil이 아닌 오류를 반환할 수도 있습니다.

지원되지 않는 유형

Marshal은 지원되지 않는 데이터 유형을 마샬링하려고 시도할 때 UnsupportedTypeError를 반환합니다. 예:

<code class="go">import "encoding/json"

func main() {
    ch := make(chan int)
    _, err := json.Marshal(ch)
    if _, ok := err.(*json.UnsupportedTypeError); ok {
        // Error: Unmarshal: unsupported type: chan int
    }
}</code>

지원되지 않는 값

Marshal은 잘못된 값을 마샬링하려고 시도할 때 UnsupportedValueError를 반환할 수도 있습니다. 예를 들면 다음과 같습니다.

<code class="go">import (
    "encoding/json"
    "math"
)

func main() {
    positiveInfinity := math.Inf(1)
    _, err := json.Marshal(positiveInfinity)
    if _, ok := err.(*json.UnsupportedValueError); ok {
        // Error: json: unsupported value: +Inf
    }
}</code>

이러한 조건을 이해함으로써 개발자는 오류를 적절하게 처리하고 json.Marshal이 예상 결과를 반환하거나 적절한 오류를 처리하도록 할 수 있습니다.

위 내용은 Golang에서 JSON 마샬링 중 오류를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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