사용자 정의 유형을 사용하여 보내는 JSON의 타임스탬프 형식 지정
JSON 인코딩 중에 타임스탬프 형식을 지정하려면 Marshaler 인터페이스를 구현하는 사용자 정의 유형을 생성할 수 있습니다. . 이렇게 하면 직렬화 프로세스를 제어할 수 있어 원하는 형식을 지정할 수 있습니다.
Marshaler 인터페이스 구현
Marshaler 인터페이스에는 단일 방법이 필요합니다. JSON으로 인코딩된 데이터를 나타내는 바이트 조각과 오류가 있는 경우 이를 반환하는 MarshalJSON. 이 경우 time.Time을 래핑하고 MarshalJSON을 구현하는 사용자 정의 유형을 정의합니다.
다음은 구현 예입니다.
type JSONTime time.Time func (t JSONTime)MarshalJSON() ([]byte, error) { // Format the timestamp in the desired format stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2")) return []byte(stamp), nil }
문서 구조 업데이트
문서 구조체에서 time.Time을 Stamp에 대한 사용자 정의 JSONTime 유형으로 바꿉니다. field:
type Document struct { Name string Content string Stamp JSONTime Author string }
문서 초기화
문서 인스턴스를 초기화할 때 time.Now() 대신 JSONTime(time.Now())을 사용하세요.
testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
다음 단계에 따라 요구 사항에 따라 JSON 응답의 타임스탬프 형식을 지정할 수 있습니다. 필요에 따라 이 개념을 다른 사용자 정의 유형이나 시나리오로 확장할 수 있습니다.
위 내용은 Go의 JSON 출력에서 타임스탬프 형식을 어떻게 사용자 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!