307

I cannot seem to find the JavaScriptSerializer object nor the the System.Web.Script.Serialization namespace within Visual Studio 2010. I need to serialize something to JSON what am I supposed to use?

And yes, I already included the System.Web.Extensions (in System.Web.Extensions.dll) within the project. Which is why I am shocked?

  • I do know System.Web.Extensions was marked as obsolete in 3.5
Prisoner ZERO
  • 13,848
  • 21
  • 92
  • 137
  • 5
    I have the same problem, and I gotta say the answers are pretty useless. I am targeting the ".NET Framework 4", **not** ".NET 4 Client Profile". I **have** referenced the System.Web.Extensions assembly. But when I try using the System.Web.Script.Serialization namespace, VS 2010 tells me "The type or namespace Script does not exist in the namespace System.Web". Has anyone found a real solution for this? I'm stumped! – twakjaco Nov 16 '11 at 18:28
  • Related post [here](https://stackoverflow.com/q/1156313/465053). – RBT Nov 12 '17 at 01:17

12 Answers12

543

Check if you included the .net 4 version of System.Web.Extensions - there's a 3.5 version as well, but I don't think that one works.

These steps work for me:

  1. Create a new console application
  2. Change the target to .net 4 instead of Client Profile
  3. Add a reference to System.Web.Extensions (4.0)
  4. Have access to JavaScriptSerializer in Program.cs now :-)
Nico Schertler
  • 32,049
  • 4
  • 39
  • 70
Steffen
  • 13,648
  • 7
  • 57
  • 67
140
  1. Right click References and do Add Reference, then from Assemblies->Framework select System.Web.Extensions.
  2. Now you should be able to add the following to your class file:
    using System.Web.Script.Serialization;
Scott Johnson
  • 1,500
  • 1
  • 9
  • 4
43

From the first search result on google:

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

JavaScriptSerializer Class

Provides serialization and deserialization functionality for AJAX-enabled applications.

Inheritance Hierarchy

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

Namespace: System.Web.Script.Serialization

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

So, include System.Web.Extensions.dll as a reference.

Community
  • 1
  • 1
Paul
  • 4,422
  • 5
  • 29
  • 55
  • 3
    Two years later, on a totally unrelated project: it also helps if you capitalize it correctly >.> (it's not JavascriptSerializer). – neminem Mar 04 '15 at 22:49
30

I'm using Visual Studio 2015 and finally ran across this post.

Yes in order to use

JavaScriptSerializer json = new JavaScriptSerializer();

You must right click on references and under Assemblies --> Framework choose

System.Web.Extensions

Then add in your reference

using System.Web.Script.Serialization;
Tom Stickel
  • 19,633
  • 6
  • 111
  • 113
15

This is how to get JavaScriptSerializer available in your application, targetting .NET 4.0 (full)

using System.Web.Script.Serialization;

This should allow you to create a new JavaScriptSerializer object!

Gonzalo.-
  • 12,512
  • 5
  • 50
  • 82
Alex Hopkins
  • 872
  • 9
  • 11
13
using System.Web.Script.Serialization; 

is in assembly : System.Web.Extensions (System.Web.Extensions.dll)

Ema.H
  • 2,862
  • 3
  • 28
  • 41
9

For those who seem to be following the answers above but still have the problem (e.g., see the first comment on the poster's question):

You are probably working in a solution with many projects. The project you appear to be working in references other projects, but you are actually modifying a file from one of the other projects. For example:

  • project A references System.Web.Extensions
  • project A references project B

But if the file you are modifying to use System.Web.Script.Serialization is in project B, then you will need to add a reference to System.Web.Extension in project B as well.

jltrem
  • 12,124
  • 4
  • 40
  • 50
9

Are you targeting the .NET 4 framework or the .NET 4 Client Profile?

If you're targeting the latter, you won't find that class. You also may be missing a reference, likely to an extensions dll.

Christopher Currens
  • 29,917
  • 5
  • 57
  • 77
8

Did you include a reference to System.Web.Extensions? If you click on your first link it says which assembly it's in.

Davy8
  • 30,868
  • 25
  • 115
  • 173
5

You have to add the reference to the project.

In Assemblies, there is a System.Web.Extensions Add that.

Once that is done put:

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

That worked for me.

riahc3
  • 857
  • 4
  • 10
  • 23
5

You can use another option which is the Newtonsoft.Json, you can install it from NuGet Package Manager.

Tools >> Nuget Package Manager >> Package Manager Console by issuing command

Install-Package Newtonsoft.Json

or

by using the GUI at Tools >> Nuget Package Manager >> Manage NuGet Packages for Solution...

enter image description here

Iztoksson
  • 980
  • 16
  • 32
Alexander Zaldostanov
  • 2,907
  • 4
  • 30
  • 39
  • 1
    Note that this is Microsoft's [documented recommendation](https://learn.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer). On .Net Core, Microsoft no longer even offers JavaScriptSerializer (nor the rest of System.Web.Extensions). – Brian Mar 05 '18 at 16:46
3

Just so you know, I am using Visual Studio 2013 and have had the same problem until I used the Project Properties to switch to 3.5 framework and back to 4.5. This for some reason registered the .dll properly and I could use the System.Web.Extensions.

enter image description here

enter image description here

Milan
  • 3,209
  • 1
  • 35
  • 46