JSon.net 날짜 포맷 설정 방식
/// <summary>
/// Json.net
/// </summary>
private static void DefaultJsonConvertSetting()
{
JsonSerializerSettings setting = new JsonSerializerSettings();
JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
{
//
setting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//
//setting.NullValueHandling = NullValueHandling.Ignore;
return setting;
});
}
다음은 JSon.Net 에서 속성 정의 날 짜 를 사용 하 는 직렬 화 형식 을 살 펴 보 겠 습 니 다.하나의 실체 클래스 의 모든 시간,즉 DateTime 형식의 필드 가 통 일 된 형식 으로 처리 된다 면 다음 과 같은 방식 을 사용 할 수 있 습 니 다.
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
JsonConvert.SerializeObject(stu, Newtonsoft.Json.Formatting.Indented, timeFormat);
돌아 가 야 할 형식 이 일치 하지 않 는 다 면,예 를 들 어 어떤 것 은 년 월 일이 필요 하고,어떤 것 은 년 월 일 시 분 초 이 며,이렇게 통제 할 수 없다.속성 정 의 를 통 해 해결 할 수 있 습 니 다.
public class student
{
public string Name { get; set; }
public int Age { get; set; }
[JsonConverter(typeof(DateFormat))]
public DateTime BirthDay { get; set; }
[JsonConverter(typeof(DateTimeFormat))]
public DateTime CreateTime { get; set; }
}
public class DateFormat:IsoDateTimeConverter
{
public DateFormat()
{
base.DateTimeFormat = "yyyy-MM-dd";
}
}
public class DateTimeFormat:IsoDateTimeConverter
{
public DateTimeFormat()
{
base.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
}
}
인 스 턴 스 데모:
student stu = new student()
{
Name = " ",
Age = ,
BirthDay = new DateTime(, , ),
CreateTime = DateTime.Now
};
string result = JsonConvert.SerializeObject(stu);
result = {"Name":" ","Age":30,"BirthDay":"1986-07-16","CreateTime":"2016-01-16 23:13:34"}
이렇게 제어 하 는 입도 가 더욱 가 늘 어 졌 다.총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 Json.net 날짜 포맷 설정 방식 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다!