> 백엔드 개발 > Golang > Go에서 JSON을 구문 분석할 때 어떻게 기본값을 설정할 수 있나요?

Go에서 JSON을 구문 분석할 때 어떻게 기본값을 설정할 수 있나요?

Barbara Streisand
풀어 주다: 2024-12-10 17:12:17
원래의
556명이 탐색했습니다.

How Can I Set Default Values When Parsing JSON in Go?

Go를 사용한 JSON 구문 분석에서 기본값 지정

Go에서 JSON 객체를 구문 분석할 때 다음과 같은 필드에 기본값을 지정해야 할 수 있습니다. 입력 JSON에는 제공되지 않습니다. 다음 필드가 있는 구조체 유형을 고려해 보세요.

type Test struct {
    A string
    B string
    C string
}
로그인 후 복사

A, B, C에 대해 원하는 기본값이 각각 "a", "b" 및 "c"라고 가정합니다. 다음 JSON을 구문 분석할 때:

{"A": "1", "C": 3}
로그인 후 복사

예상되는 구조체는 다음과 같습니다.

Test{A: "1", B: "b", C: "3"}
로그인 후 복사

encoding/json 패키지 사용

빌드된 - Go의 인코딩/json 패키지에서는 JSON 구문 분석 중에 기본값을 지정할 수 있습니다. 빈 구조체를 사용하는 대신 다음과 같이 원하는 기본값이 포함된 구조체를 제공하세요.

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

out := Test{
    A: "default a",
    B: "default b",
    // default for C will be "", the empty value for a string
}
err := json.Unmarshal(example, &out) // <-
if err != nil {
    panic(err)
}
fmt.Printf("%+v", out)
로그인 후 복사

json.Unmarshal(example, &out)을 호출하면 JSON이 out 구조체로 역마샬링되어 값을 덮어씁니다. JSON에 지정됩니다. 그러나 JSON에 없는 필드의 기본값은 변경되지 않습니다. 예제를 실행하면 다음이 반환됩니다.

{A:1 B:default b C:3}
로그인 후 복사

다른 Go 라이브러리

encoding/json 패키지가 특정 요구 사항을 충족하지 않는 경우 유사한 기능을 제공하는 다른 Go 라이브러리가 있습니다. . 다음을 고려하십시오.

  • [xjson](https://github.com/gobuffalo/x/blob/master/xjson/xjson.go)은 다음의 사양을 허용하는 사용자 정의 가능한 JSON 파서를 제공합니다. 기본값 및 기타 옵션.
  • [eson](https://github.com/sean-/eson)은 다음을 통해 기본값을 지원하는 또 다른 JSON 파서입니다. default() 메소드.

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

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