Не вдалося знайти JavaScriptSerializer у .Net 4.0


297

Я не можу знайти JavaScriptSerializerоб'єкт, ані System.Web.Script.Serializationпростір імен у Visual Studio 2010. Мені потрібно щось серіалізувати на JSON, що я повинен використовувати?

І так, я вже включив System.Web.Extensions(у System.Web.Extensions.dll) в проект. Через що я шокований?

  • Я знаю System.Web.Extensions, що в 3,5 було позначено як застаріле

5
У мене така ж проблема, і я повинен сказати, що відповіді досить марні. Я орієнтований на ".NET Framework 4", а не ". NET 4 профіль клієнта". Я вже посилається на System.Web.Extensions збірки. Але коли я намагаюся використовувати простір імен System.Web.Script.Serialization, VS 2010 каже мені "Тип сценарію або простору імен не існує в просторі імен System.Web". Хтось знайшов для цього реальне рішення? Я тупаю!
twakjaco

Відносяться пост тут .
RBT

Відповіді:


523

Перевірте, чи ви включили версію .net 4 System.Web.Extensions- також є версія 3.5, але я не думаю, що вона працює.

Ці кроки для мене працюють:

  1. Створіть нову консольну програму
  2. Змініть ціль на .net 4 замість профілю клієнта
  3. Додати посилання на System.Web.Extensions(4.0)
  4. Майте доступ до JavaScriptSerializerProgram.cs зараз :-)

в vb.net не забувайте "нові" та (), як: Dim JsonConvert As New JavaScriptSerializer ()
zokaee hamid

124
  1. Клацніть правою кнопкою миші Referencesта зробіть Add Reference, потім Assemblies->Frameworkвиберіть System.Web.Extensions.
  2. Тепер ви маєте змогу додати наступне до файлу класу:
    using System.Web.Script.Serialization;

Ідеально, я навіть забув зробити щось на кшталт чого дякую
Халил Ліракі

Чудово! детальне пояснення
charulatha krishnamoorthy

41

З першого результату пошуку в 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як довідник.


3
Через два роки, на абсолютно незв'язаному проекті: він також допомагає, якщо правильно його використати>>> (це не JavascriptSerializer).
neminem

25

Я використовую Visual Studio 2015 і, нарешті, наткнувся на цю посаду.

Так для використання

JavaScriptSerializer json = new JavaScriptSerializer();

Ви повинні клацнути правою кнопкою миші на посиланнях та в розділі Асамблеї -> Рамка вибрати

System.Web.Extensions

Потім додайте у своєму довіднику

using System.Web.Script.Serialization;

15

Ось як отримати доступ до JavaScriptSerializer у вашій програмі, націлюючи .NET 4.0(повне)

using System.Web.Script.Serialization;

Це повинно дозволити вам створити новий JavaScriptSerializerоб’єкт!


Сценарію не існує
KansaiRobot

12
using System.Web.Script.Serialization; 

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


10

Ви орієнтуєтесь на .NET 4 фреймворк або профіль клієнта .NET 4?

Якщо ви орієнтуєтесь на останнього, ви не знайдете цього класу. Можливо, вам також не вистачає посилання, ймовірно, на розширення dll.


.NET Framework 4. І у мене вже є проект "System.Web.Extensions"
З'явлений в'язень

Це проект, який ви модернізували на більш ранній версії .net?
Крістофер Керренс

У мене це питання з проектом, який я модернізував. Здається, це не вирішено за допомогою оригінальної версії .net (3.5), хоча ...
user1003221

9

Для тих, хто, здається, дотримується відповідей вище, але все ще має проблему (наприклад, дивіться перший коментар до питання афіші):

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

  • посилання на проект A System.Web.Extensions
  • проект А довідковий проект B

Але якщо файл, який ви модифікуєте для використання, System.Web.Script.Serializationє в проекті B, то вам також потрібно буде додати посилання System.Web.Extensionв проект B.


8

Ви включили посилання на System.Web.Extensions? Якщо ви натиснете на своє перше посилання, він говорить, в якій збірці йдеться.


У такому випадку, можливо, перевірте відповідь @ Крістофера.
Davy8

5

Ви повинні додати посилання на проект.

У Асамблеях є System.Web.Extensions Додайте це.

Після того, як це зроблено, покладіть:

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

Це працювало для мене.


3

Просто ви знаєте, що я використовую Visual Studio 2013 і в мене виникли ті самі проблеми, поки я не використовував властивості проекту для переходу на 3.5 фреймворк і назад на 4.5. Це чомусь зареєструвало .dll належним чином, і я міг використовувати System.Web.Extensions .

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

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


3

Ви можете використовувати інший варіант, який є Newtonsoft.Json, ви можете встановити його з NuGet Package Manager.

Інструменти >> Nuget Package Manager >> Console Package Manager шляхом видачі команди

Install-Package Newtonsoft.Json

або

за допомогою графічного інтерфейсу в Інструментах >> Менеджер пакунків Nuget >> Керування пакетами NuGet для вирішення ...

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


Зауважте, що це документально підтверджена рекомендація Microsoft . Що стосується .Net Core, Microsoft більше не пропонує JavaScriptSerializer (ані решту System.Web.Extensions).
Брайан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.