Maison >développement back-end >C++ >Comment personnaliser le format de sérialisation des dates dans Json.Net sans affecter les paramètres globaux ?
Personnalisation du format de sérialisation de date Json.Net
Dans certains scénarios de développement d'API, vous devrez peut-être personnaliser le format de sérialisation de la date de données spécifiques sans affecter les paramètres globaux. Un moyen efficace consiste à utiliser un JsonConverter personnalisé.
Comme vous l'avez suggéré, cela peut être réalisé en créant une classe personnalisée qui hérite de la classe de base JsonConverter. Voici un exemple :
<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>
Ce convertisseur personnalisé peut ensuite être appliqué aux propriétés qui nécessitent un format de date spécifié :
<code class="language-csharp">public class ReturnObjectA { [JsonConverter(typeof(CustomDateTimeConverter))] public DateTime ReturnDate { get; set; } }</code>
Cependant, Json.Net propose également une solution plus simple, qui consiste à utiliser le IsoDateTimeConverter intégré. Ce convertisseur permet de préciser le format de date dans son constructeur :
<code class="language-csharp">public class CustomDateTimeConverter : IsoDateTimeConverter { public CustomDateTimeConverter() { DateTimeFormat = "yyyy'-'MM'-'dd"; } }</code>
Vous pouvez personnaliser la sérialisation des dates sans modifier les paramètres globaux en sous-classant IsoDateTimeConverter et en appliquant les propriétés du convertisseur personnalisé avec le format souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!