타임스탬프에 대한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!