Impossible de trouver JavaScriptSerializer dans .Net 4.0

Je n’arrive pas à trouver l’object JavaScriptSerializer ni l’espace de noms System.Web.Script.Serialization dans Visual Studio 2010. Je dois sérialiser quelque chose en JSON. Que dois-je utiliser?

Et oui, j’ai déjà inclus les System.Web.Extensions (dans System.Web.Extensions.dll) dans le projet. C’est pourquoi je suis choqué?

  • Je sais que System.Web.Extensions été marqué comme obsolète dans 3.5

Vé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 cela fonctionne.

Ces étapes fonctionnent pour moi:

  1. Créer une nouvelle application console
  2. Changez la cible en .net 4 au lieu du profil du client
  3. Ajouter une référence à System.Web.Extensions (4.0)
  4. Avoir access à JavaScriptSerializer dans Program.cs maintenant 🙂
  1. Faites un clic droit sur References et faites Add Reference , puis à partir de Assemblies->Framework sélectionnez System.Web.Extensions .
  2. Vous devriez maintenant pouvoir append ce qui suit à votre fichier de classe:
  using System.Web.Script.Serialization; 

Du 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 de l’inheritance

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 je suis finalement passé par cette publication.

Oui pour utiliser

 JavaScriptSerializer json = new JavaScriptSerializer(); 

Vous devez faire un clic droit sur les références et sous Assemblies -> Framework choisir

 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 object JavaScriptSerializer !

Ciblez-vous l’infrastructure .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 dans lequel vous travaillez semble faire référence à d’autres projets, mais vous modifiez en fait un fichier de l’un des autres projets. Par exemple:

  • projet A références System.Web.Extensions
  • projet A références projet B

Mais si le fichier que vous modifiez pour utiliser System.Web.Script.Serialization trouve dans le projet B, vous devrez également append 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 quel assemblage il se trouve.

 using System.Web.Script.Serialization; 

est dans assembly: System.Web.Extensions (System.Web.Extensions.dll)

Vous devez append la référence au projet.

Dans Assemblies, il y a un System.Web.Extensions Ajouter cela.

Une fois cela fait, mettez:

  using System.Web; using System.Web.Script; using System.Web.Script.Serialization; 

Cela a fonctionné pour moi.

Juste pour que vous sachiez, j’utilise Visual Studio 2013 et j’ai eu le même problème jusqu’à ce que j’utilise les propriétés du projet pour passer au framework 3.5 et revenir à la version 4.5. Cela pour une raison quelconque enregistré le fichier .dll correctement et je pourrais utiliser le System.Web.Extensions .

entrer la description de l'image ici

entrer la description de l'image ici

vous pouvez utiliser une autre option qui est le NewtonsoftJASON, vous pouvez l’installer à partir de NuGet Package Manager.Outils >> Nuget PacakgeManager

entrer la description de l'image ici