Maison >développement back-end >C++ >Json.Net peut-il configurer le comportement du setter privé sans modifier le code source ?
Configuration du comportement des setters privés dans Json.Net
Bien que Json.Net propose un attribut pour adresser les setters privés, une option par défaut pour cette fonctionnalité est souvent recherché. En l'absence de modifications du code source, la question se pose : existe-t-il un paramètre configurable pour obtenir ce comportement ?
Réponse
Option 1 : Utiliser le [ JsonProperty] Attribute
Au lieu de s'appuyer sur un attribut spécifique, utilisez simplement le L'attribut [JsonProperty] sert à renseigner les propriétés en lecture seule pendant la désérialisation. Un exemple :
[JsonProperty] public Guid? ClientId { get; private set; }
Option 2 : Solution basée sur un constructeur
Une approche alternative consiste à créer un constructeur avec un paramètre correspondant à la propriété privée :
public class Foo { public string Bar { get; } public Foo(string bar) { Bar = bar; } }
Cela permet les éléments suivants :
string json = "{ \"bar\": \"Stack Overflow\" }"; var deserialized = JsonConvert.DeserializeObject<Foo>(json); Console.WriteLine(deserialized.Bar); // Stack Overflow
Les avantages de cette approche include :
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!