Json.Net 날짜 직렬화 형식 사용자 정의
일부 API 개발 시나리오에서는 전역 설정에 영향을 주지 않고 특정 데이터의 날짜 직렬화 형식을 사용자 정의해야 할 수도 있습니다. 효율적인 방법 중 하나는 사용자 정의 JsonConverter를 사용하는 것입니다.
제안하신 대로 JsonConverter 기본 클래스에서 상속되는 사용자 정의 클래스를 생성하면 이를 달성할 수 있습니다. 예는 다음과 같습니다.
<code class="language-csharp">public class CustomDateTimeConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var date = (DateTime)value; writer.WriteValue(date.ToString("yyyy'-'MM'-'dd")); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { throw new NotImplementedException(); // 此示例中未实现 } public override bool CanConvert(Type objectType) { return objectType == typeof(DateTime); } }</code>
이 사용자 정의 변환기는 지정된 날짜 형식이 필요한 속성에 적용될 수 있습니다.
<code class="language-csharp">public class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get; set; } }</code>
그러나 Json.Net은 내장된 IsoDateTimeConverter를 사용하는 더 간단한 솔루션도 제공합니다. 이 변환기를 사용하면 생성자에서 날짜 형식을 지정할 수 있습니다.
<code class="language-csharp">public class CustomDateTimeConverter : IsoDateTimeConverter { public CustomDateTimeConverter() { DateTimeFormat = "yyyy'-'MM'-'dd"; } }</code>
IsoDateTimeConverter를 하위 클래스로 분류하고 원하는 형식으로 사용자 지정 변환기 속성을 적용하면 전역 설정을 수정하지 않고도 날짜 직렬화를 사용자 지정할 수 있습니다.
위 내용은 전역 설정에 영향을 주지 않고 Json.Net에서 날짜 직렬화 형식을 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!