> 백엔드 개발 > Golang > Go JSON Marshal에서 빈 중첩 구조체를 생략하는 방법은 무엇입니까?

Go JSON Marshal에서 빈 중첩 구조체를 생략하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-16 02:41:14
원래의
595명이 탐색했습니다.

How to Omit Empty Nested Structs in Go JSON Marshal?

Go JSON Marshal: 빈 중첩 구조체 생략

Go의 json:",omitempty" 태그를 사용하면 비어 있는 필드를 제외할 수 있습니다. JSON 출력의 값. 그러나 이 동작은 값이 0인 구조체에는 적용되지 않습니다.

빈 필드가 있는 경우 중첩 구조체를 생략하려면 포인터가 아닌 구조체 대신 포인터를 사용할 수 있습니다. 이렇게 하면 0이 아닌 값이 할당되지 않은 경우 구조체가 빈 것으로 처리됩니다.

예를 들어 다음 구조체를 고려하세요.

type ColorGroup struct {
    ID     int `json:",omitempty"`
    Name   string
    Colors []string
}

type Total struct {
    A *ColorGroup `json:",omitempty"` // Use pointer
    B string       `json:",omitempty"`
}
로그인 후 복사

이 경우, 그룹 .A에는 0이 아닌 값이 할당되지 않으며 빈 것으로 처리되어 JSON 출력에서 ​​생략됩니다. 이는 JSON 출력에 빈 group.A가 계속 포함되는 포인터가 아닌 구조체를 사용하는 것과 대조적입니다.

다음 플레이그라운드 링크는 이 동작을 보여줍니다: https://play.golang.org/p /3i7rh4e3t3D

위 내용은 Go JSON Marshal에서 빈 중첩 구조체를 생략하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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