Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.Net 4.0中找不到JavaScriptSerializer_C#_Visual Studio_Jsonserializer - Fatal编程技术网

C# 在.Net 4.0中找不到JavaScriptSerializer

C# 在.Net 4.0中找不到JavaScriptSerializer,c#,visual-studio,jsonserializer,C#,Visual Studio,Jsonserializer,在VisualStudio2010中,我似乎找不到对象或System.Web.Script.Serialization命名空间。我需要将一些东西序列化为JSON我应该使用什么 是的,我已经在项目中包含了System.Web.Extensions(在System.Web.Extensions.dll中)。这就是为什么我感到震惊 我知道System.Web.Extensions标记为3.5 来自谷歌的第一个搜索结果: JavaScriptSerializer类 为支持AJAX的应用程序提供序列化

在VisualStudio2010中,我似乎找不到对象或
System.Web.Script.Serialization
命名空间。我需要将一些东西序列化为JSON我应该使用什么

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

  • 我知道
    System.Web.Extensions
    标记为3.5

来自谷歌的第一个搜索结果:

JavaScriptSerializer类

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

继承层次

系统对象

System.Web.Script.Serialization.JavaScriptSerializer

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

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


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

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


如果你的目标是后者,你就找不到那个类。您还可能缺少一个引用,很可能是扩展dll。

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

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

这些步骤对我很有用:

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

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


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

    您必须将引用添加到项目中

    在程序集中,有一个System.Web.Extensions添加该扩展

    完成后,将:

        using System.Web;
        using System.Web.Script;
        using System.Web.Script.Serialization;
    
    这对我很管用

  • 右键单击
    References
    并执行
    addreference
    ,然后从
    Assemblies->Framework
    选择
    System.Web.Extensions
  • 现在,您应该能够将以下内容添加到类文件中:
  • 使用System.Web.Script.Serialization;
    
    对于那些似乎在遵循上述答案但仍然存在问题的人(例如,请参见关于海报问题的第一条评论):

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

    • 项目A引用了
      System.Web.Extensions
    • 项目A参考项目B
    但是,如果要修改以使用
    System.Web.Script.Serialization
    的文件位于项目B中,则还需要在项目B中添加对
    System.Web.Extension
    的引用

    using System.Web.Script.Serialization; 
    

    正在汇编中:System.Web.Extensions(System.Web.Extensions.dll)

    我正在使用Visual Studio 2015,最后我浏览了这篇文章

    是为了使用

    JavaScriptSerializer json = new JavaScriptSerializer();
    
    必须右键单击引用,然后在“程序集-->框架”下选择

    System.Web.Extensions
    
    然后添加您的参考资料

    using System.Web.Script.Serialization;
    

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


    您可以使用另一个选项,即Newtonsoft.Json,您可以从NuGet Package Manager安装它

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

    安装软件包Newtonsoft.Json

    通过在Tools>>Nuget软件包管理器>>管理解决方案的Nuget软件包中使用GUI


    在这种情况下,可以查看@Christopher的答案..NET Framework 4。我已经在项目中包含了“System.Web.Extensions”,这是您从早期版本的.net升级的项目吗?我升级的项目有这个问题。但是,使用原始的.net版本(3.5)似乎无法解决这个问题……我也有同样的问题,我必须说答案是毫无用处的。我的目标是“.NET Framework 4”,而不是“.NET 4客户端配置文件”。我已引用System.Web.Extensions程序集。但当我尝试使用System.Web.Script.Serialization命名空间时,VS 2010告诉我“命名空间System.Web中不存在类型或命名空间脚本”。有人找到了真正的解决办法吗?我被难住了!相关文章。两年后,在一个完全不相关的项目上:如果你正确地利用它,它也会有帮助>>(它不是JavascriptSerializer)。太好了,我甚至忘了做一些像That thank you Great这样的事情!详细解释请注意,这是微软的。在.Net Core上,Microsoft甚至不再提供JavaScriptSerializer(也不再提供System.Web.Extensions的其余部分)。脚本不存在于vb.Net中。不要忘记“new”和()如:Dim JsonConvert As new JavaScriptSerializer()
    using System.Web.Script.Serialization;