Avatar ·

JavaScriptSerializer : comment sérialiser une enum en chaîne JSON, et non en nombre ?

Bonjour à tous ! Je suis un développeur C# débutant, j'écris une petite application web en ASP.NET Web Forms (vieille école, mais projet legacy). J'utilise `JavaScriptSerializer` pour sérialiser un objet en JSON afin de l'envoyer au client. Voici une classe : ```csharp public class User { public string Name { get; set; } public UserRole Role { get; set; } } public enum UserRole { Admin, Moderator, User } ``` Je crée un objet et le sérialise : ```csharp var user = new User { Name = "Иван", Role = UserRole.Admin }; var serializer = new JavaScriptSerializer(); string json = serializer.Serialize(user); Console.WriteLine(json); ``` En sortie, j'obtiens : `{"Name":"Иван","Role":0}`. Le problème est que `Role` est sérialisé en nombre (0, 1, 2), alors que j'ai besoin d'une valeur textuelle, par exemple `"Admin"`. Côté client, c'est nécessaire pour la lisibilité et la comparaison. Je sais que dans `System.Text.Json` ou `Newtonsoft.Json` modernes, il existe des attributs comme `[JsonConverter(type