web-dev-qa-db-fra.com

Sérialisation Json en C #

J'essaie de sérialiser un objet local sur json mais la documentation MSDN semble toujours me dérouter. Je pense que je suis supposé utiliser DataContractJsonSerializer mais je ne suis pas tout à fait sûr, car j’ai vu des réponses mitigées. J'ai également eu quelqu'un recommande Newtonsoft.

Quelqu'un at-il une expérience avec cela qui peut me diriger dans la bonne direction?

39
Brandon Clapp

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);
67
Chris Farmer

Le sérialiseur JSON de ServiceStack est le plus rapide sérialiseur JSON. NET .

Et pesant seulement 159 kb , il est également très léger et ne contient pas trop de fonctionnalités utiles, par exemple. .NET est le plus rapide JSV et CSV sérialiseurs de texte, T.Dump () utils + more.

7
mythz

Sauf si vous avez des besoins json très spécifiques, restez fidèle au sérialiseur de framework. Vous trouverez plus de commentaires sur les problèmes éventuels.

4
lstern

Il existe de nombreuses bibliothèques JSON différentes dans .NET, qui permettent une sorte de sérialisation. Regardez au bas de http://json.org/ pour trouver une liste des bibliothèques JSON pour C #. Celui qui convient le mieux dépend de vos besoins. J'ai utilisé json.net de Newtonsoft, bien que personnellement, j'ai trouvé le sérialiseur très lent. Si vous avez besoin de vitesse, Servicestack prétend avoir le plus rapide ( ici ). Le site présente également des comparaisons de performances, bien que je ne l’aie pas essayée.

Faites des recherches sur Google, ou simplement essayez-les, écrivez des tests, ou choisissez simplement le framework et n'introduisez aucune dépendance supplémentaire.

4
Marcus