39 votes

La Sérialisation Json en C#

Je suis en train de sérialiser un objet local en json, mais la documentation msdn semble toujours à me confondre. Je crois que je suis suppose que l'utilisation de la DataContractJsonSerializer mais pas tout à fait sûr, que j'ai vu des réponses mixtes. J'ai aussi eu quelqu'un vous recommandons de Newtonsoft.

Quelqu'un a une expérience avec ce qui peut me pointer dans la bonne direction?

67voto

Chris Farmer Points 10681

Vous pouvez utiliser le JavaScriptSerializer.

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

var thing = new Thing();
var json = new JavaScriptSerializer().Serialize(thing);

7voto

mythz Points 54874

Bien ServiceStack du sérialiseur JSON est le plus rapide .NET sérialiseur JSON.

Et de pesée à seulement 159kb il est aussi très léger, pas trop parler de contient beaucoup de fonctionnalités utiles, par exemple .NET plus rapide JSV et CSV texte sérialiseurs, T. Dump() utils + plus.

4voto

lstern Points 1079

Sauf si vous avez très spécifiques json besoins, coller avec le cadre sérialiseur. Vous trouverez plus de commentaires sur les problèmes éventuels.

4voto

Marcus Points 2012

Il ya tellement de différents json bibliothèques .NET, qui fournissent une sorte de sérialisation. Regardez au bas de http://json.org/ pour trouver une liste de JSON bibliothèques pour C#. Celle qui est la mieux dépend de vos besoins. J'ai utilisé json.net de Newtonsoft, bien que personnellement j'ai trouvé le processus très lent. Si vous avez besoin de vitesse Servicestack prétend avoir la plus rapide (ici). Le site montre aussi quelques comparaisons de performances, bien que je ne l'ai pas essayé.

Faire quelques recherches sur Google, ou tout simplement essayer de l'en sortir, écrire des tests, ou il suffit de choisir le cadre de l'un et de l'introduire sans supplément de dépendances et être fait avec elle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X