28 votes

System.Web.Script.Serialization.JavaScriptSerializer ou System.Runtime.Serialization.Json.DataContractJsonSerializer?

Quelle est la différence entre les deux? Pourquoi voudriez-vous utiliser l'un sur l'autre?

14voto

Kamarey Points 4416

Trouvé ici: http://aaron-powell.spaces.live.com/blog/cns!91A824220E2BF369!150.entrée

DataContractJsonSerializer Le but principal de la DataContractJsonSerializer doit être utilisé avec WCF, depuis une sérialisation est un grand accent de la WCF. En outre, il est également mieux équipés pour gérer des classes complexes qui ont seulement certaines propriétés disponibles pour la sérialisation. Cette classe est plus fortement typé, a plus de connaissances sur le genre(s) c'est de la manipulation et une meilleure gestion des erreurs pour les mal-formé JSON.

JavaScriptSerializer Cette classe sur l'autre main est beaucoup mieux équipé pour rapide de la sérialisation, c'est un cowboy approche. Il y a moins d'erreur de vérification et moins de contrôle sur ce que les propriétés qui sont en série.

Mise à jour

Comme le lien ci-dessus est mort, voici un autre lien: http://kb.cnblogs.com/a/1454030.

9voto

Marc Gravell Points 482669

Personnellement, je regarderais Json.NET - cela a l'avantage (pour les anciennes versions au moins) d'être compatible .NET 2.0

1voto

W. Kevin Hazzard Points 447

JavaScriptSerializer est marqué comme obsolète dans le framework 3.5. Vous ne devriez pas l'utiliser pour cette raison. Mais revenons à votre question. Le JavaScriptSerializer n'exige pas que les classes soient marquées comme [Serializable] ou comme [DataContract] mais le DataContractJsonSerializer le fait. Si vous avez des classes compilées que vous ne pouvez pas marquer avec des attributs, vous souhaiterez peut-être utiliser l'ancien sérialiseur JSON.

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