> 백엔드 개발 > Golang > Go의 JSON 응답에서 타임스탬프 형식을 사용자 정의하는 방법은 무엇입니까?

Go의 JSON 응답에서 타임스탬프 형식을 사용자 정의하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-23 22:46:14
원래의
749명이 탐색했습니다.

How to Customize Timestamp Formatting in Go's JSON Responses?

Time.Time을 사용하여 보내는 JSON의 타임스탬프 형식 지정

Go에서 JSON 응답의 일부로 time.Time 유형을 보낼 때, 기본 ISO 8601 형식 대신 타임스탬프를 원하는 형식으로 지정하는 것이 바람직한 경우가 많습니다. 이를 달성하려면 다음 기술을 사용할 수 있습니다.

사용자 정의 마샬링 및 역마샬링

Marshall 인터페이스는 사용자 정의 유형으로 구현되어 JSON 표현을 결정할 수 있습니다. 마찬가지로 Unmarshaler 인터페이스를 사용하여 JSON 데이터를 사용자 정의 유형으로 구문 분석하는 것을 제어할 수 있습니다. time.Time의 경우 MarshalJSON을 구현하는 JSONTime 유형을 정의합니다.

type JSONTime time.Time

func (t JSONTime) MarshalJSON() ([]byte, error) {
    // Format the time in the desired format
    stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2"))
    return []byte(stamp), nil
}
로그인 후 복사

문서 유형 업데이트

문서 유형에서 스탬프 필드를 변경합니다. JSONTime에 입력:

type Document struct {
    ...
    Stamp       JSONTime
    ...
}
로그인 후 복사

예 사용법

이제 테스트 문서를 초기화할 때:

testDoc := model.Document{
    ...
    Stamp:       JSONTime(time.Now()),
    ...
}
로그인 후 복사

JSON으로 인코딩될 때 타임스탬프가 지정된 형식에 따라 형식화됩니다:

{
  ...
  "Stamp": "May 15, 2014"
  ...
}
로그인 후 복사

이 접근 방식은 JSON 응답에서 타임스탬프 형식을 지정하는 방법에 대한 유연성과 제어 기능을 제공하므로 특정 요구 사항에 따라 사용자 정의할 수 있습니다.

위 내용은 Go의 JSON 응답에서 타임스탬프 형식을 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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