我似乎找不到JavaScriptSerializer对象,也找不到Visual Studio 2010中的System.Web.Script.Serialization命名空间。我需要把东西序列化成JSON应该用什么呢?
JavaScriptSerializer
System.Web.Script.Serialization
是的,我已经在项目中包含了System.Web.Extensions(在System.Web.Extensions.dll中)。这就是我震惊的原因吗?
System.Web.Extensions
从谷歌上的第一个搜索结果中:
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中)
JavaScriptSerializer类
为支持ajax的应用程序提供序列化和反序列化功能。
继承层次结构
系统。对象
System.Web.Script.Serialization.JavaScriptSerializer
名称空间:System.Web.Script.Serialization
程序集:System.Web.Extensions(在System.Web.Extensions.dll中)
因此,包含System.Web.Extensions.dll作为引用。
System.Web.Extensions.dll
你的目标是。net 4框架还是。net 4客户端配置文件?
如果您的目标是后者,则找不到该类。你也可能丢失了一个引用,很可能是一个扩展dll。
你是否包含了System.Web.Extensions的引用?如果单击第一个链接,它会显示它在哪个程序集中。
检查你是否包含了。net 4版本的System.Web.Extensions -还有一个3.5版本,但我不认为这个有效。
下面这些步骤对我很有用:
这是如何让JavaScriptSerializer在你的应用程序中可用,目标是.NET 4.0(满)
.NET 4.0
using System.Web.Script.Serialization;
这应该允许你创建一个新的JavaScriptSerializer对象!
必须将引用添加到项目中。
在程序集中,有一个System.Web.Extensions。
一旦完成,请:
using System.Web; using System.Web.Script; using System.Web.Script.Serialization;
这对我很管用。
References
Add Reference
Assemblies->Framework
对于那些似乎按照上面的答案,但仍然有问题的人(例如,见帖子问题的第一条评论):
您可能正在处理许多项目的解决方案。您似乎正在使用的项目引用其他项目,但实际上您正在修改来自其他项目之一的文件。例如:
但是如果你要修改以使用System.Web.Script.Serialization的文件在项目B中,那么你也需要在项目B中添加对System.Web.Extension的引用。
System.Web.Extension
在汇编中:System.Web.Extensions (System.Web.Extensions.dll)
我正在使用Visual Studio 2015,终于看到了这篇文章。
是的,为了使用
JavaScriptSerializer json = new JavaScriptSerializer();
您必须右键单击引用并在“程序集—>框架选择”下
然后加上你的推荐信
就像你知道的那样,我正在使用Visual Studio 2013,一直有同样的问题,直到我使用项目属性切换到3.5框架,然后回到4.5。出于某种原因,这正确地注册了.dll,我可以使用System.Web.Extensions。
你可以使用另一种选择,那就是Newtonsoft。Json,你可以从NuGet包管理器安装它。
工具>> Nuget包管理>>包管理控制台通过下发命令
Install-Package Newtonsoft.Json
或
通过使用工具>> Nuget包管理>>管理解决方案的Nuget包…