ISO 8601에 따르면 json date 필드는 부분 데이터를 포함 할 수 있습니다. "YYYY"
(년 전용) 또는 "YYYY-MM"
(월 - 월 전용).Newtonsoft.Json 직렬화 지원 년 전용 날짜 필드가 있습니까?
class PartialDateContainter
{
public DateTime MyPartialDate { get; set; }
}
[Test]
public void JustCheckJsonDates()
{
var serializationSettings =
new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
ContractResolver = new ReadOnlyJsonContractResolver(),
Converters = new List<JsonConverter>
{
new Iso8601TimeSpanConverter(),
new IsoDateTimeConverter()
}
};
var ser = JsonSerializer.Create(serializationSettings);
var json = "{ \"MyPartialDate\": \"2005\" }";
var shus = ser.Deserialize<PartialDateContainter>(new JsonTextReader(new StringReader(json)));
Assert.True(true);
}
나는 실종 뭔가 :
그러나, 다음 코드를 지원하기로했다 Json.NET deserializer를 사용하여 형식 오류가 발생합니다?
년도 플러스 달 작품 (예를 들어' "2005-05"'), 단 세 날짜 만 실패 일했다 역 직렬화 (예 :''2005 ''). – Nitzankin
@ Nkosi 아니, 아직 해결되지 않았어, 내 문제는 년 전용 날짜 형식입니다. – Nitzankin
그러면 사용자 지정 변환기가 필요합니다. – Nkosi