Dépannage de la double sérialisation avec JSON.NET dans l'API Web
Un problème courant dans le développement d'API Web implique que JSON.NET sérialise deux fois les objets de manière inattendue. Cela se produit souvent lors de l'utilisation de JsonConvert.SerializeObject(instance)
avec des convertisseurs personnalisés définis dans JsonConvert.DefaultSettings
dans WebApiConfig
. Le résultat est une réponse JSON entourée de guillemets doubles avec des guillemets internes échappés.
La solution est simple : évitez de sérialiser manuellement les objets à l'aide de JsonConvert.SerializeObject
. Au lieu de cela, laissez le contrôleur de l'API Web gérer le processus de sérialisation. Retournez simplement vos objets directement :
<code class="language-csharp">public IEnumerable<foobar> GetFoobars() { var foobars = ...; return foobars; }</code>
En renvoyant les foobar
objets sans sérialisation explicite, le contrôleur de l'API Web utilisera ses paramètres par défaut pour sérialiser les données en JSON ou XML, selon la demande du client. Cela élimine le problème de la double sérialisation.
Autres ressources :
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!