JavaScriptSerializer namespace issue

久未见 提交于 2019-12-01 14:00:25

问题


I am having a problem trying to implement the JavaScriptSerializer to parse a JSON string received from a server.

I implemented the following code:

responseFromServer = readStream.ReadLine();
JavaScriptSerializer ser = new JavaScriptSerializer();
var dict = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(responseFromServer);
var status = dict["notificationType"]; 
Debug.WriteLine(status);

I added using System.Web.Script.Serialization;

Visual C# 2010 Express is telling me the namespace name Script does not exist in the namespace System.Web. As a result the JavaScriptSerializer is not valid.

What am I missing to use this, or is there a better way to parse the JSON string?


回答1:


JavaScriptSerializer is situated in System.Web.Extensions Assembly. You should add it to your project references.

You can get this information in MSDN

Assembly: System.Web.Extensions (in System.Web.Extensions.dll)




回答2:


System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var dict = oSerializer.Deserialize<Dictionary<string, object>>(responseFromServer);

This will help you to get the value




回答3:


Add Reference System.Web.Extensions

then type using System.Web.Script.Serialization;

Now you should get JavaScriptSerializer valid.

You can use better approach by adding Newtonsoft.Json.dll through

Add Reference. See details here : http://json.codeplex.com/




回答4:


I have had this problem and I added project reference for System.Web.Extensions , try adding that reference to your project and see if it helps




回答5:


install Desharp package you can use this command in package manager console

Install-Package Desharp -Version 1.2.11



来源:https://stackoverflow.com/questions/18746026/javascriptserializer-namespace-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!