source

ASP에 시간이 없는 날짜.NET Web API의 JSON 출력

factcode 2023. 3. 25. 11:56
반응형

ASP에 시간이 없는 날짜.NET Web API의 JSON 출력

JSON을 설정하는 간단한 방법이 있습니까?NET을 통해 DateTime필드는 시간 및 기타 없이 포맷됩니다.DateTime필드의 형식은 시간에 따라 계속 지정됩니까?

예:

{ firstName: 'John', lastName : 'Doe', birthday: '1965-09-23' }

특정 필드에만 영향을 미치도록 하려면 먼저 변환기 유형을 만듭니다.

public class OnlyDateConverter : IsoDateTimeConverter
{
    public OnlyDateConverter()
    {
        DateTimeFormat = "yyyy-MM-dd";
    }
}

그런 다음 이 속성을 원하는 필드/속성에 추가합니다.

[JsonConverter(typeof(OnlyDateConverter))]

다음 행을 추가하여 웹 API를 구성하십시오.

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
    new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" });

Yosesef의 답변은OnlyDateConverter최고입니다.하지만 여기 한 가지 대안이 있습니다.

private DateTime _birthday;
public string Birthday
{
    get { return _birthday.ToString("yyyy-MM-dd"); }
    set {
          _birthday = DateTime.ParseExact(value, "yyyy-MM-dd",
                                          CultureInfo.InvariantCulture);
        }
}

장점 - Newtonsoft를 구속할 필요가 없습니다.Json 라이브러리를 수업에 사용할 수 있습니다.

단점 - 속성을 사용하는 모든 위치에 문자열로 표시되므로 자체 문제가 발생할 수 있습니다.

언급URL : https://stackoverflow.com/questions/16320762/dates-without-time-in-asp-net-web-apis-json-output

반응형