Не удается найти JavaScriptSerializer в .Net 4.0 - PullRequest
282 голосов
/ 09 августа 2011

Мне не удается найти ни объект JavaScriptSerializer, ни пространство имен System.Web.Script.Serialization в Visual Studio 2010. Мне нужно что-то сериализовать в JSON, что я должен использовать?

И да, я уже включил System.Web.Extensions (в System.Web.Extensions.dll) в проект. Вот почему я в шоке?

Ответы [ 12 ]

498 голосов
/ 25 ноября 2011

Проверьте, включена ли версия .net 4 System.Web.Extensions - есть и версия 3.5, но я не думаю, что она работает.

Эти шаги работают для меня:

  1. Создание нового консольного приложения
  2. Изменить цель на .net 4 вместо профиля клиента
  3. Добавить ссылку на System.Web.Extensions (4.0)
  4. Теперь у вас есть доступ к JavaScriptSerializer в Program.cs: -)
111 голосов
/ 13 марта 2013
  1. Щелкните правой кнопкой мыши References и выполните Add Reference, затем из Assemblies->Framework выберите System.Web.Extensions.
  2. Теперь вы сможете добавить в свой файл класса следующее:
    using System.Web.Script.Serialization;
41 голосов
/ 09 августа 2011

Из первого результата поиска в Google:

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

Класс JavaScriptSerializer

Предоставляет функции сериализации и десериализации для приложений с поддержкой AJAX.

Иерархия наследования

System.Object

System.Web.Script.Serialization.JavaScriptSerializer

Пространство имен: System.Web.Script.Serialization

Сборка: System.Web.Extensions (в System.Web.Extensions.dll)

Итак, включите System.Web.Extensions.dll в качестве ссылки.

21 голосов
/ 17 сентября 2015

Я использую Visual Studio 2015 и, наконец, наткнулся на этот пост.

Да, чтобы использовать

JavaScriptSerializer json = new JavaScriptSerializer();

Вы должны щелкнуть правой кнопкой мыши по ссылкам и в разделе Сборки -> Framework выбрать

System.Web.Extensions

Затем добавьте в вашу ссылку

using System.Web.Script.Serialization;
15 голосов
/ 28 августа 2012

Вот как сделать JavaScriptSerializer доступным в вашем приложении с целью .NET 4.0 (полная)

using System.Web.Script.Serialization;

Это позволит вам создать новый JavaScriptSerializer объект!

12 голосов
/ 20 января 2014
using System.Web.Script.Serialization; 

находится в сборке: System.Web.Extensions (System.Web.Extensions.dll)

10 голосов
/ 09 августа 2011

Вы нацеливаетесь на платформу .NET 4 или .NET 4 Client Profile?

Если вы нацелены на последнее, вы не найдете этот класс.Вы также можете пропустить ссылку, вероятно, на расширение DLL.

9 голосов
/ 03 мая 2013

Для тех, кто, кажется, следит за ответами выше, но все еще имеет проблему (например, см. Первый комментарий на вопрос автора):

Вы, вероятно, работаете над решением многих проектов. Проект, над которым вы работаете, ссылается на другие проекты, но вы фактически изменяете файл из одного из других проектов. Например:

  • Проект A, ссылки System.Web.Extensions
  • проект A, ссылки на проект B

Но если файл, который вы изменяете для использования System.Web.Script.Serialization, находится в проекте B, то вам также необходимо добавить ссылку на System.Web.Extension в проекте B.

8 голосов
/ 09 августа 2011

Вы включили ссылку на System.Web.Extensions? Если вы нажмете на свою первую ссылку, там написано, в какой сборке он находится.

5 голосов
/ 21 февраля 2013

Вы должны добавить ссылку на проект.

В сборках есть System.Web.Extensions Добавьте это.

Как только это будет сделано, введите:

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

Это сработало для меня.

...