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 중국어 웹사이트의 기타 관련 기사를 참조하세요!