Désérialisation des collections d'instances d'interface
Il est courant de stocker des données sous forme d'instances d'interfaces, comme dans ClassToSerializeViaJson de l'exemple. Cependant, la désérialisation de telles collections peut provoquer des erreurs comme celle mentionnée dans la question.
Solution :
Pour résoudre le problème, Json.Net nécessite une configuration supplémentaire pour activer la désérialisation. d'interface instances.
Sérialisation :
string serializedJson = JsonConvert.SerializeObject(objectToSerialize, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple });
Désérialisation :
var deserializedObject = JsonConvert.DeserializeObject<ClassToSerializeViaJson>(serializedJson, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects });
En implémentant ces paramètres, Json.Net peut désérialiser correctement les collections d'instances d'interface, permettant la récupération de la structure de données d'origine.
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!