>백엔드 개발 >Golang >Go에서 JSON 타임스탬프 출력을 어떻게 사용자 정의할 수 있나요?

Go에서 JSON 타임스탬프 출력을 어떻게 사용자 정의할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-21 01:39:15250검색

How Can I Customize JSON Timestamp Output in Go?

타임스탬프에 대한 JSON 출력 사용자 정의

특정 데이터 유형에 대한 인코딩 프로세스를 조정하여 사용자 정의 날짜 형식으로 Go 구조를 직렬화할 수 있습니다. 타임스탬프의 경우 time.Time 유형의 기본 JSON 표현이 원하는 형식 요구 사항을 충족하지 못하는 경우가 많습니다.

이 문제를 해결하려면 json.Marshaler를 구현하는 사용자 정의 데이터 유형에 time.Time을 래핑하면 됩니다. 인터페이스. 이 인터페이스는 JSON에서 유형을 표시하는 방법을 정의할 수 있는 MarshalJSON 메소드를 정의합니다.

예:

type JSONTime time.Time

func (t JSONTime) MarshalJSON() ([]byte, error) {
    // Convert the timestamp to the desired format
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}

문서 구조에서 사용할 스탬프 필드를 업데이트합니다. time.Time 대신 JSONTime:

type Document struct {
    Name        string
    Content     string
    Stamp       JSONTime
    Author      string
}

json.Marshal 또는 json.NewEncoder를 사용하여 문서를 인코딩하는 경우, 스탬프 필드는 사용자 정의 형식으로 직렬화됩니다. 예를 들어 "2014-05-16T08:28:06.801064-04:00" 대신 "May 15, 2014"가 표시될 수 있습니다.

이 접근 방식은 JSON에서 타임스탬프가 표현되는 방식을 제어하는 ​​데 더 큰 유연성을 제공합니다. , 디스플레이 또는 데이터 교환에 대한 특정 요구 사항에 맞게 조정할 수 있습니다.

위 내용은 Go에서 JSON 타임스탬프 출력을 어떻게 사용자 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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