Je souhaite désérialiser un objet json dans une classe C# et avoir un objet par défaut complètement rempli même si mon JSON ne contient pas les informations. J'ai essayéLa désérialisation de JSON.Net remplit les propriétés manquantes
- Annotation avec [DefaultValue]
- Création des constructeurs pour les classes
- désérialisation avec un objet Paramètres
Paramètres objet:
new JsonSerializerSettings {
DefaultValueHandling = DefaultValueHandling.Populate
NulValueHandling = NullValueHandling.Include
ObjectCreationHandling = ObjectCreationHandling.Replace
}
Tenez compte de ces C# classes
public class Root{
public SpecialProperty name {get;set;}
public SpecialProperty surname {get;set;}
}
public class SpecialProperty {
string type {get;set;}
string value {get;set;}
}
Considérez cette JSON
"Root" : {
"name" : {
"type" : "string",
"value": "MyFirstname"
}
}
Comment puis-je désérialiser cette JSON dans un objet avec les données disponibles sérialisé dans un nouvel objet et les propriétés manquantes, dans ce cas, mis à string.empty
?
Merci, c'est ce que je suis allé avec. Crée des contstructors et les initialise partout. Bien que je pense toujours qu'il devrait pouvoir initialiser le tout par des annotations et l'objet 'JsonSerializerSettings' mais peut-être le mot' Serializer' est primordial dans cette histoire parce que j'essaye de désérialiser. Si quelqu'un découvre une solution JsonNet pure sans avoir à passer par les classes de création et de mise en place des objets que je voudrais savoir. –