47

I am trying to use JavaScriptSerializer in my application.

I initially received

Cannot find JavaScriptSerializer

and I solved it by adding:

using System.Web.Script.Serialization;

But then the sub-keyword Script is underlined with a blue line:

The type or namespace 'Script' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

So I added to the project a reference to:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.Extensions.dll

That didn't help. I am still receiving the same blue underline with same error. The reference is marked with an exclamation mark yellow warning:

enter image description here

I tried the suggested solutions on this thread, but as @user781490 indicated, they didn't help in my situation.

Any idea how to resolve this?

Community
  • 1
  • 1
scatmoi
  • 1,958
  • 4
  • 18
  • 32
  • 1
    So the framework your project is pointing is definitely NOT the Client Profile version, right? – Arran Oct 23 '12 at 16:37
  • As the user above me stated, make sure your project is targeting .NET 4 and not .NET 4 client profile. – Tejas Sharma Oct 23 '12 at 16:42
  • 2
    @Arran It *is* a `.NET Framework 4 Client Profile` but: **(1)** I am not interested in converting it to a `.NET Framework 4`. **(2)** If you read that thread, you'll notice that the tips there didn't help even for those who had the full `.NET Framework 4`. Surely there must be a way to use `JavaScriptSerializer` in a Client Profile, right? – scatmoi Oct 23 '12 at 16:42
  • @TejasSharma If I try to change the Target framework from `.NET Framework 4 Client Profile` to `.NET Framework 4`, I get a warning that horrible things might happen to my project... So when asked "Are you sure you want to change the Target Framework for this project?", of course I click `No`. – scatmoi Oct 23 '12 at 16:45
  • Have you tried deleting and then re-adding the System.Web.Extensions reference? – Forty-Two Oct 23 '12 at 16:46
  • I've used DataContractJsonSerializer (which lives in the System.Runtime.Serialization.Json namespace) when I've not been able to use JavaScriptSerializer (such as in wcf projects). Just a thought... – Forty-Two Oct 23 '12 at 16:55

8 Answers8

54

I had the same. Script been underlined. I added a reference to System.Web.Extensions. Thereafter the Script was no longer underlined. Hope this helps someone.

Costa Zachariou
  • 907
  • 1
  • 12
  • 19
39

Add System.Web.Extensions as a reference to your project

enter image description here

For Ref.

Community
  • 1
  • 1
Siddhartha
  • 1,473
  • 14
  • 10
13

I found this MSDN forum post which suggests two solutions to your problem.

First solution (not recommended):

Find the .Net Framework 3.5 and 2.0 folder

Copy System.Web.Extensions.dll from 3.5 and System.Web.dll from 2.0 to the application folder

Add the reference to these two assemblies

Change the referenced assemblies property, setting "Copy Local" to true And build to test your application to ensure all code can work

Second solution (Use a different class / library):

The user who had posted the question claimed that Uri.EscapeUriString and How to: Serialize and Deserialize JSON Data helped him replicate the behavior of JavaScriptSerializer.

You could also try to use Json.Net. It's a third party library and pretty powerful.

Nathan Tuggy
  • 2,237
  • 27
  • 30
  • 38
Tejas Sharma
  • 3,420
  • 22
  • 35
  • 4
    Referencing the `3.5` version in `C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5` did the trick. Thank you! – scatmoi Oct 23 '12 at 16:56
  • http://stackoverflow.com/questions/4444903/how-to-install-json-net-using-nuget newtonsoft.json is another option. – Enkode Sep 11 '15 at 19:56
7

Just Add reference to System.Web.Extensions and happy to go.

Usman
  • 2,547
  • 31
  • 35
1

Since JsonSerializer is deprecated in .Net 4.0+ I used http://www.newtonsoft.com/json to solve this issue.

NuGet- > Install-Package Newtonsoft.Json

Enkode
  • 4,515
  • 4
  • 35
  • 50
0

i have try it you could add reference web.extensions ( i using .Net framwork 4.5)

  • Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Nov 16 '21 at 05:12
0

I have a similar issue. Fail on "using System.Threading.Channels;"

my solution is to add reference of " System.Threading.Tasks.Extensions.dll" System.Threading.Tasks.Extensions.dll

Jamie
  • 79
  • 1
  • 8
0

I had a similar problem but with two projects I'd made myself. the problem was mismatching the .net framework version.