> 백엔드 개발 > Golang > Go에서 누락된 JSON 필드에 대한 기본값을 어떻게 설정할 수 있나요?

Go에서 누락된 JSON 필드에 대한 기본값을 어떻게 설정할 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-18 17:40:15
원래의
243명이 탐색했습니다.

How Can I Set Default Values for Missing JSON Fields in Go?

Go에서 JSON 구문 분석 기본값 사용자 정의

Go에서 JSON을 구문 분석할 때 존재하지 않는 필드에 기본값을 할당하면 데이터 조작이 향상될 수 있습니다. 다음은 인코딩/json 패키지를 사용하거나 외부 Go 라이브러리를 활용하는 방법입니다.

encoding/json 사용

encoding/json 패키지는 간단한 솔루션을 제공합니다. . 빈 구조체를 json.Unmarshal에 전달하는 대신 기본값으로 초기화할 수 있습니다. 예:

type Test struct {
    A string "a"
    B string "b"
    C string
}

example := []byte(`{"A": "1", "C": "3"}`)

out := Test{}
err := json.Unmarshal(example, &out)
if err != nil {
    panic(err)
}
fmt.Printf("%+v", out)
로그인 후 복사

외부 라이브러리 활용

encoding/json 패키지가 요구 사항을 완전히 충족하지 못하는 경우 향상된 JSON을 제공하는 외부 Go 라이브러리가 있습니다. 구문 분석 기능. 인기 있는 옵션 중 하나는 구조체 태그를 사용하여 누락된 필드에 대한 기본값을 지정할 수 있는 go-json 라이브러리입니다.

import (
    "encoding/json"
    "github.com/go-json"
)

type Test struct {
    A string `json:"a,omitempty"`
    B string `json:"b,omitempty"`
    C string `json:"c,omitempty"`
}

example := []byte(`{"A": "1", "C": "3"}`)

out := Test{
    DefaultA: "a",
    DefaultB: "b",
    DefaultC: "c",
}

err := json.Unmarshal(example, &out)
if err != nil {
    panic(err)
}
fmt.Printf("%+v", out)
로그인 후 복사

위 내용은 Go에서 누락된 JSON 필드에 대한 기본값을 어떻게 설정할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿