Utilisez Json.net pour désérialiser les propriétés sans les sérialiser à nouveau
Json.net vous permet de contrôler le processus de sérialisation et de désérialisation des propriétés des objets C#. Cet article explore un scénario dans lequel vous souhaitez désérialiser une propriété spécifique d'un fichier JSON, mais pas la sérialiser dans le fichier JSON. Voici quelques moyens d'y parvenir :
Méthode 1 : Utiliser la méthode ShouldSerialize
Json.net prend en charge la sérialisation conditionnelle à l'aide de la méthode ShouldSerialize. Pour les propriétés que vous souhaitez ignorer lors de la sérialisation, ajoutez une méthode booléenne ShouldSerializeBlah() à votre classe, où Blah est le nom de la propriété. Cette méthode doit toujours renvoyer false.
Par exemple :
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public Bang ReplacementSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
Méthode 2 : Utiliser JObject pour faire fonctionner JSON
Vous pouvez désérialiser les objets de configuration en JObject au lieu de vous fier à JsonConvert.SerializeObject. Supprimez les attributs indésirables de JSON avant d'écrire dans JSON :
<code class="language-csharp">JObject jo = JObject.FromObject(config); // 从其父级中删除“ObsoleteSetting” JProperty jo["ObsoleteSetting"].Parent.Remove(); json = jo.ToString();</code>
Méthode 3 : Utiliser les attributs
Une autre façon consiste à utiliser des attributs :
Voici un exemple :
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { // get intentionally omitted here set { ObsoleteSetting = value; } } public Bang ReplacementSetting { 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!