303

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

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

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

12 回答 12

537

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

这些步骤对我有用:

  1. 创建一个新的控制台应用程序
  2. 将目标更改为 .net 4 而不是客户端配置文件
  3. 添加对System.Web.Extensions(4.0)的引用
  4. 现在可以访问JavaScriptSerializerProgram.cs :-)
于 2011-11-25T06:20:03.487 回答
134
  1. 右键单击References并执行Add Reference,然后从Assemblies->Framework选择System.Web.Extensions
  2. 现在您应该能够将以下内容添加到您的类文件中:
    using System.Web.Script.Serialization;
于 2013-03-13T16:44:23.160 回答
42

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

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

JavaScriptSerializer 类

为启用 AJAX 的应用程序提供序列化和反序列化功能。

继承层次

系统对象

System.Web.Script.Serialization.JavaScriptSerializer

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

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

因此,包括System.Web.Extensions.dll作为参考。

于 2011-08-09T18:18:27.900 回答
28

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

是的,以便使用

JavaScriptSerializer json = new JavaScriptSerializer();

您必须右键单击引用并在“程序集”->“框架”下选择

System.Web.Extensions

然后添加您的参考

using System.Web.Script.Serialization;
于 2015-09-17T00:44:14.973 回答
15

这是如何让 JavaScriptSerializer 在您的应用程序中可用,定位.NET 4.0(完整)

using System.Web.Script.Serialization;

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

于 2012-08-28T08:33:49.953 回答
13
using System.Web.Script.Serialization; 

正在组装:System.Web.Extensions (System.Web.Extensions.dll)

于 2014-01-20T09:45:09.970 回答
9

您的目标是 .NET 4 框架还是 .NET 4 客户端配置文件?

如果您的目标是后者,您将找不到该课程。您也可能缺少参考,可能是扩展 dll。

于 2011-08-09T18:18:45.103 回答
9

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

您可能正在使用包含许多项目的解决方案。您似乎正在从事的项目引用了其他项目,但实际上您正在修改来自其他项目之一的文件。例如:

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

但是,如果您要修改使用的文件System.Web.Script.Serialization在项目 B 中,那么您还需要System.Web.Extension在项目 B 中添加对的引用。

于 2013-05-02T22:58:15.517 回答
8

您是否包含对 的引用System.Web.Extensions?如果您单击第一个链接,它会显示它所在的程序集。

于 2011-08-09T18:18:59.110 回答
5

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

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

完成后放置:

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

这对我有用。

于 2013-02-21T15:51:15.337 回答
4

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

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

Install-Package Newtonsoft.Json

或者

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

在此处输入图像描述

于 2017-06-16T14:18:22.103 回答
3

正如您所知,我使用的是 Visual Studio 2013 并且遇到了同样的问题,直到我使用项目属性切换到 3.5 框架并返回到 4.5。由于某种原因,这正确注册了 .dll ,我可以使用System.Web.Extensions

在此处输入图像描述

在此处输入图像描述

于 2015-10-29T22:42:42.123 回答