Json.Net : gestion des propriétés en tant que valeurs au lieu d'objets
Lors de l'utilisation de JSON.Net pour représenter des objets complexes, tels que la voiture et StringId décrites dans l'introduction, il est parfois souhaitable de sérialiser/désérialiser les propriétés sous forme de valeurs simples plutôt que d'objets imbriqués. Cet article présente deux approches pour y parvenir : les convertisseurs de type et les convertisseurs JSON.
Convertisseurs de type
L'ajout d'un convertisseur de type spécifiquement pour la classe StringId permettra à JSON.Net de convertissez-le vers/depuis une chaîne pendant la sérialisation/désérialisation :
[TypeConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : TypeConverter { // ... (Implement CanConvertFrom, CanConvertTo, ConvertFrom, and ConvertTo) }
JSON Convertisseurs
Alternativement, les convertisseurs JSON offrent plus de contrôle sur le processus de conversion. En appliquant un convertisseur JSON personnalisé à la classe StringId, la logique de sérialisation et de désérialisation peut être explicitement définie :
[JsonConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : JsonConverter { // ... (Implement CanConvert, ReadJson, and WriteJson) }
Configuration globale du convertisseur
Les convertisseurs JSON peuvent également être défini globalement. Par exemple, pour gérer toutes les propriétés de type StringId en tant que valeurs :
JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Converters = { new StringIdConverter() } };
Considérations supplémentaires
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!