지노윈 2024. 4. 18. 18:08
반응형

Go 언어의 Json

참고: https://www.joinc.co.kr/w/man/12/golang/json

JSON Tag

encoding/json 패키지의 경우 아래와 같이 Tag를 이용해서 마샬/언마샬 방식을 설정 할 수 있습니다.

type RequestCreateOpenChannel struct {
    Name                 string `json:"name"`
    ChannelUrl           string `json:"channel_url"`
    CustomType           string `json:"custom_type"`
    Data                 string `json:"data"`
    IsDynamicPartitioned bool   `json:"is_dynamic_partitioned"`
}
 

omitempty

omit empty : 비어 있으면 생략한다.

값을 입력하지 않지 않으면 json에서 제외 할 수 있습니다.

type ResponseOkCreateOpenChannel struct {
    Name             string `json:"name"`
    ChannelUrl       string `json:"channel_url"`
    CustomType       string `json:"custom_type"`
    ParticipantCount int32  `json:"participant_count"`
    CreatedAt        int64  `json:"created_at"`
    Data             string `json:"data,omitempty"` //opmitempty를 설정하여 값을 설정하지 않으면 json에서 제외하도록 합니다.
    Freeze           bool   `json:"freeze"`
}
 

 

필드 제외

`json:"-"`로 설정하여 json에서 제외 시킵니다.

type ResponseOkCreateOpenChannel struct {
    Name             string `json:"name"`
    ChannelUrl       string `json:"channel_url"`
    CustomType       string `json:"custom_type"`
    ParticipantCount int32  `json:"participant_count"`
    CreatedAt        int64  `json:"created_at"`
    Data             string `json:"data,omitempty"`
    Freeze           bool   `json:"-"` // json에서 제외
}​