Penyesuaian format siri tarikh Json.Net
Dalam sesetengah senario pembangunan API, anda mungkin perlu menyesuaikan format siri tarikh data tertentu tanpa menjejaskan tetapan global. Satu cara yang cekap ialah menggunakan JsonConverter tersuai.
Seperti yang anda cadangkan, ini boleh dicapai dengan mencipta kelas tersuai yang mewarisi daripada kelas asas JsonConverter. Berikut ialah contoh:
<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>
Penukar tersuai ini kemudiannya boleh digunakan pada sifat yang memerlukan format tarikh tertentu:
<code class="language-csharp">public class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get; set; } }</code>
Walau bagaimanapun, Json.Net juga menyediakan penyelesaian yang lebih mudah, iaitu menggunakan IsoDateTimeConverter terbina dalam. Penukar ini membolehkan anda menentukan format tarikh dalam pembinanya:
<code class="language-csharp">public class CustomDateTimeConverter : IsoDateTimeConverter { public CustomDateTimeConverter() { DateTimeFormat = "yyyy'-'MM'-'dd"; } }</code>
Anda boleh menyesuaikan penyirian tarikh tanpa mengubah suai tetapan global dengan mensubkelaskan IsoDateTimeConverter dan menggunakan sifat penukar tersuai dengan format yang anda inginkan.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Format Pensirian Tarikh dalam Json.Net tanpa Menjejaskan Tetapan Global?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!