"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi JSON.NET Double sérialisation de mes objets?

Pourquoi JSON.NET Double sérialisation de mes objets?

Publié le 2025-02-04
Parcourir:186

Why is JSON.NET Double Serializing My Objects?

JSON.net Dual-Sequedidentization Problem

Lors de l'utilisation de l'objet de sérialisation JSON.net, un problème étrange peut être rencontré: l'objet est une double sérialisation. Cela entraînera l'enveloppement des données JSON dans deux citations dans la réponse, et les citations intégrées sont également justes.

cause première

La cause profonde est la méthode de sérialisation. Si vous utilisez jsonconvert.serializeObject (instance)

si vous utilisez

jsonconvert.serialililialieOboct (instance). En effet, vous le sérialisez d'abord en une chaîne, puis le contrôleur API le sérialisera davantage sur le mot de chaîne JavaScript. solution

Pour résoudre ce problème, il vous suffit de revenir directement à l'objet: public ienumerable getFoobars () {{ var foobars = ...; Retour Foobars; }

Méthode de remplacement
public IEnumerable GetFoobars()
{
    var foobars = ...;
    return foobars;
}
httpconfiguration

: config.formatters.jsonformatter.sersettings.converters.add config.formatters.jsonformatter.serializeSettings.converters.add (new Barconverter ());

Autres conseils

Assurez-vous que le convertisseur personnalisé est correctement implémenté.

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FooConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new BarConverter());
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3