在.Net 4.0中找不到JavaScriptSerializer

Pri*_*ERO 292 c# jsonserializer visual-studio

我似乎无法在Visual Studio 2010中找到JavaScriptSerializer对象和System.Web.Script.Serialization命名空间.我需要将某些内容序列化为JSON我应该使用什么?

是的,我已经System.Web.Extensions在项目中包含了(在System.Web.Extensions.dll中).这让我感到震惊的原因是什么?

  • 我知道在3.5中System.Web.Extensions被标记为过时

Ste*_*fen 516

检查你是否包含了.net 4版本System.Web.Extensions- 还有一个3.5版本,但我不认为那个有用.

这些步骤对我有用:

  1. 创建一个新的控制台应用程
  2. 将目标更改为.net 4而不是客户端配置文件
  3. 添加对System.Web.Extensions(4.0)的引用
  4. JavaScriptSerializer现在可以访问Program.cs :-)


小智 118

  1. 右键单击References并执行Add Reference,然后从Assemblies->Framework选择System.Web.Extensions.
  2. 现在您应该能够将以下内容添加到您的类文件中:
    using System.Web.Script.Serialization;
Run Code Online (Sandbox Code Playgroud)


Pau*_*aul 41

从谷歌的第一个搜索结果:

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

JavaScriptSerializer类

为支持AJAX的应用程序提供序列化和反序列化功能.

继承层次结构

System.Object的

System.Web.Script.Serialization.JavaScriptSerializer

命名空间:System.Web.Script.Serialization

程序集:System.Web.Extensions(在System.Web.Extensions.dll中)

所以,包括System.Web.Extensions.dll作为参考.

  • 两年后,在一个完全不相关的项目上:如果你正确地利用它,它也会有所帮助>.>(它不是JavascriptSerializer). (3认同)

Tom*_*kel 23

我正在使用Visual Studio 2015,最后遇到了这篇文章.

是的,以便使用

JavaScriptSerializer json = new JavaScriptSerializer();
Run Code Online (Sandbox Code Playgroud)

您必须右键单击引用,然后在Assemblies - > Framework选择下

System.Web.Extensions
Run Code Online (Sandbox Code Playgroud)

然后添加您的参考

using System.Web.Script.Serialization;
Run Code Online (Sandbox Code Playgroud)


Ale*_*ins 15

这是如何在您的应用程序中使用JavaScriptSerializer,目标.NET 4.0(完整)

using System.Web.Script.Serialization;
Run Code Online (Sandbox Code Playgroud)

这应该允许您创建一个新JavaScriptSerializer对象!

  • 脚本不存在 (3认同)

Ema*_*a.H 12

using System.Web.Script.Serialization; 
Run Code Online (Sandbox Code Playgroud)

在程序集中:System.Web.Extensions(System.Web.Extensions.dll)


Chr*_*ens 10

您是针对.NET 4框架还是.NET 4客户端配置文件?

如果你的目标是后者,你将找不到那个类.你也可能错过了一个引用,很可能是一个扩展dll.


jlt*_*rem 9

对于那些似乎遵循上述答案但仍然存在问题的人(例如,请参阅海报问题的第一条评论):

您可能正在使用许多项目的解决方案.您似乎正在使用的项目引用其他项目,但实际上您正在修改其他项目之一的文件.例如:

  • 项目参考 System.Web.Extensions
  • 项目A参考项目B.

但是,如果要修改的文件System.Web.Script.Serialization位于项目B中,则还需要System.Web.Extension在项目B中添加引用.


Dav*_*vy8 8

你有参考System.Web.Extensions吗?如果你点击你的第一个链接,它会说明它所在的组件.


ria*_*hc3 5

您必须添加对项目的引用.

在Assemblies中,有一个System.Web.Extensions添加它.

一旦完成,就把:

    using System.Web;
    using System.Web.Script;
    using System.Web.Script.Serialization;
Run Code Online (Sandbox Code Playgroud)

这对我有用.


Ale*_*nov 5

您可以使用另一个选项,即 Newtonsoft.Json,您可以从 NuGet 包管理器安装它。

工具>> Nuget包管理器>> 通过发出命令的包管理器控制台

Install-Package Newtonsoft.Json

或者

通过使用 GUI 工具 >> Nuget 包管理器 >> 管理解决方案的 NuGet 包...

在此输入图像描述