:ここJson.NET:オブジェクトをDateTimeOffsetsに変換しますか?私は、次の形式でJSONとして日付を返すAPIサービスへの要求を作ってるんだ
{
"dateCreated": {
"date":8,
"day":4,
"hours":22,
"minutes":44,
"month":10,
"nanos":241000000,
"seconds":46,
"time":1194590686241,
"timezoneOffset":480,
"year":107
}
}
time
はUnixエポックからのミリ秒数であるので、それは本当に私が支払いをしたいだけプロパティですに注意を払う。
public class ApiResponse
{
public ApiResponse(DateTimeOffset dateCreated)
{
DateCreated = dateCreated;
}
public DateTimeOffset DateCreated { get; }
}
のようなものにこれをデシリアライズするカスタムJson.NETコンバータ(コンバータは、オブジェクトのtime
プロパティにDateTimeOffset.FromUnixTimeMilliseconds
を呼ぶだろう。)
を書き込むことが可能でしょう。ここのコードがあります私がこれまで持っている:
public class ApiDateConverter : JsonConverter
{
public override bool CanWrite => false;
public override bool CanConvert(Type objectType)
{
return typeof(DateTimeOffset) == objectType;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
// What type is existingValue here? How do I get existingValue.time?
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotSupportedException();
}
}