Maison >développement back-end >C++ >Comment spécifier des formats de date personnalisés pour la sérialisation DateTime dans Json.Net sans paramètres globaux ?

Comment spécifier des formats de date personnalisés pour la sérialisation DateTime dans Json.Net sans paramètres globaux ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-16 00:01:47556parcourir

How to Specify Custom Date Formats for DateTime Serialization in Json.Net without Global Settings?

Format de date sérialisé DateTime personnalisé Json.Net

Question :

Lors de l'utilisation de la sérialisation Json.Net dans l'API Web ASP.NET, comment spécifier un format de date personnalisé tout en évitant de modifier les paramètres globaux pour répondre aux besoins d'une application spécifique ?

Réponse :

L'approche recommandée consiste à utiliser un JsonConverter personnalisé pour le formatage sélectif. Json.Net fournit un IsoDateTimeConverter qui permet un formatage personnalisé. Étant donné que le format ne peut pas être défini directement via la propriété JsonConverter, vous pouvez créer une sous-classe et spécifier le format souhaité dans son constructeur. Un convertisseur personnalisé peut ensuite être appliqué à une propriété spécifique à l'aide de la propriété JsonConverter :

<code class="language-csharp">class CustomDateTimeConverter : IsoDateTimeConverter
{
    public CustomDateTimeConverter()
    {
        base.DateTimeFormat = "yyyy'-'MM'-'dd";
    }
}

class ReturnObjectA 
{
    [JsonConverter(typeof(CustomDateTimeConverter))]
    public DateTime ReturnDate { get; set; }
}</code>

Si vous n'avez pas besoin du format d'heure, vous pouvez appliquer directement le format de date par défaut d'IsoDateTimeConverter :

<code class="language-csharp">[JsonConverter(typeof(IsoDateTimeConverter))]
public DateTime ReturnDate { get; set; }</code>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn