Je n'arrive pas à trouver l'objet JavaScriptSerializer
, ni l'espace de nom System.Web.Script.Serialization
dans Visual Studio 2010. Je dois sérialiser quelque chose en JSON, que suis-je censé utiliser?
Et oui, j'ai déjà inclus le System.Web.Extensions
(dans System.Web.Extensions.dll) dans le projet. C'est pourquoi je suis choqué?
System.Web.Extensions
était marqué comme obsolète dans 3.5Vérifiez si vous avez inclus la version .net 4 de System.Web.Extensions
- il existe également une version 3.5, mais je ne pense pas que celle-ci fonctionne.
Ces étapes fonctionnent pour moi:
System.Web.Extensions
(4.0)JavaScriptSerializer
dans Program.cs maintenant :-)References
et faites Add Reference
, puis à partir de Assemblies->Framework
sélectionnez System.Web.Extensions
. using System.Web.Script.Serialization;
Depuis le premier résultat de recherche sur google:
http://msdn.Microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx
Classe JavaScriptSerializer
Fournit des fonctionnalités de sérialisation et de désérialisation pour les applications compatibles AJAX.
Hiérarchie d'héritage
System.Object
System.Web.Script.Serialization.JavaScriptSerializer
Espace de noms: System.Web.Script.Serialization
Assembly: System.Web.Extensions (dans System.Web.Extensions.dll)
Donc, incluez System.Web.Extensions.dll
comme référence.
J'utilise Visual Studio 2015 et j'ai finalement rencontré ce message.
Oui pour utiliser
JavaScriptSerializer json = new JavaScriptSerializer();
Vous devez cliquer avec le bouton droit sur références et sous Assemblages -> Cadre, choisissez
System.Web.Extensions
puis ajoutez votre référence
using System.Web.Script.Serialization;
Voici comment obtenir JavaScriptSerializer disponible dans votre application, en ciblant .NET 4.0
(complet)
using System.Web.Script.Serialization;
Cela devrait vous permettre de créer un nouvel objet JavaScriptSerializer
!
using System.Web.Script.Serialization;
se trouve dans Assembly: System.Web.Extensions (System.Web.Extensions.dll)
Vous ciblez le framework .NET 4 ou le profil client .NET 4?
Si vous ciblez ce dernier, vous ne trouverez pas cette classe. Vous pouvez également manquer une référence, probablement à une extension DLL.
Pour ceux qui semblent suivre les réponses ci-dessus mais ont toujours le problème (par exemple, voir le premier commentaire sur la question de l'affiche):
Vous travaillez probablement dans une solution avec de nombreux projets. Le projet sur lequel vous semblez travailler fait référence à d'autres projets, mais vous modifiez en fait un fichier à partir de l'un des autres projets. Par exemple:
System.Web.Extensions
Mais si le fichier que vous modifiez pour utiliser System.Web.Script.Serialization
est dans le projet B, vous devrez également ajouter une référence à System.Web.Extension
dans le projet B.
Avez-vous inclus une référence à System.Web.Extensions
? Si vous cliquez sur votre premier lien, il indique dans quelle assemblée il se trouve.
Vous devez ajouter la référence au projet.
Dans Assemblies, il existe un System.Web.Extensions Add that.
Une fois cela fait, mettez:
using System.Web;
using System.Web.Script;
using System.Web.Script.Serialization;
Cela a fonctionné pour moi.
Vous pouvez utiliser une autre option, Newtonsoft.Json, que vous pouvez installer à partir de NuGet Package Manager.
Outils >> Gestionnaire de paquets Nuget >> Console du gestionnaire de paquets en émettant une commande
Install-Package Newtonsoft.Json
ou
en utilisant l'interface graphique à Outils >> Gestionnaire de paquets Nuget >> Gérer les paquets NuGet pour la solution ...
Juste pour que vous sachiez, j'utilise Visual Studio 2013 et j'ai le même problème jusqu'à ce que j'utilise les propriétés du projet pour basculer vers la structure 3.5 et revenir à la version 4.5. Cela pour une raison quelconque a enregistré le fichier .dll correctement et j'ai pu utiliser le System.Web.Extensions .