2012-11-07 1 views
39

J'essaie de sérialiser un objet local en json mais la documentation msdn semble toujours me perturber. Je crois que je suis supposé utiliser le DataContractJsonSerializer mais pas complètement sûr, car j'ai vu des réponses mélangées. J'ai aussi demandé à quelqu'un de recommander Newtonsoft.Json Sérialisation en C#

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

+1

Il n'y a rien de mal avec DataContract.JsonSerializer. AFAIK il est également utilisé quand WCF sérialise un objet en JSON –

+0

+1 pour Newtonsoft (Json.Net). Il suffit de chercher SO pour JSON et voir les réponses. –

+2

Si vous pouvez utiliser les outils de framework, faites-le au lieu d'ajouter des dépendances et des frais supplémentaires. – f0x

Répondre

4

Sauf si vous avez des besoins très spécifiques de JSON, bâton avec le sérialiseur-cadre. Vous trouverez plus de commentaires sur les problèmes éventuels.

4

Il existe tellement de bibliothèques json différentes dans .NET, qui fournissent une sorte de sérialisation. Regardez au bas de http://json.org/ pour trouver une liste de bibliothèques JSON pour C#. Celui qui est le meilleur 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 (here). Le site présente également des comparaisons de performances, même si je ne l'ai pas essayé. Faites un peu de googling, ou essayez-les simplement, écrivez quelques tests, ou choisissez simplement le framework et n'introduisez pas de dépendances supplémentaires et faites-le avec.

7

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

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

+6

ServiceStack est excellent, mais c'est GPL 3.0 qui peut facilement exclure son utilisation pour beaucoup de gens. – Stryck