Невозможно найти JavaScriptSerializer в .Net 4.0

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

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

  • Я знаю, что System.Web.Extensions отмечен как obsolete в 3.5

Ответ 1

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

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

  • Создание нового консольного приложения
  • Измените цель на .net 4 вместо профиля клиента
  • Добавить ссылку на System.Web.Extensions (4.0)
  • Теперь у вас есть доступ к JavaScriptSerializer в Program.cs: -)

Ответ 2

  • Щелкните правой кнопкой мыши References и сделайте Add Reference, затем из Assemblies->Framework выберите System.Web.Extensions.
  • Теперь вы должны добавить следующее в свой файл класса:
    using System.Web.Script.Serialization;

Ответ 3

Из первого результата поиска в 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 в качестве ссылки.

Ответ 4

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

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

JavaScriptSerializer json = new JavaScriptSerializer();

Вы должны щелкнуть правой кнопкой мыши по ссылкам и в разделе Ассембли → Рамки выбрать

System.Web.Extensions

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

using System.Web.Script.Serialization;

Ответ 5

Вот как можно получить JavaScriptSerializer в вашем приложении, нацелив .NET 4.0 (полный)

using System.Web.Script.Serialization;

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

Ответ 6

Вы настроили таргетинг на платформу .NET 4 или профиль клиента .NET 4?

Если вы настроите таргетинг на последний, вы не найдете этот класс. Возможно, вам также не хватает ссылки, вероятно, на расширение dll.

Ответ 7

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

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

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

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

Ответ 8

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

Ответ 9

using System.Web.Script.Serialization; 

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

Ответ 10

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

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

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

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

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

Ответ 11

Просто, чтобы вы знали, я использую Visual Studio 2013 и имею ту же проблему, пока я не использовал Свойства проекта, чтобы переключиться на 3.5 framework и вернуться к 4.5. Это почему-то правильно зарегистрировало .dll, и я мог бы использовать System.Web.Extensions.

введите описание изображения здесь

введите описание изображения здесь

Ответ 12

вы можете использовать другую опцию, которая является NewtonsoftJASON, вы можете установить ее из NuGet Package Manager.Tools → Nuget PacakgeManager

введите описание изображения здесь