Проблема с пространством имен JavaScriptSerializer

У меня возникла проблема с попыткой реализовать JavaScriptSerializer для синтаксического анализа строки JSON, полученной с сервера.

Я реализовал следующий код:

responseFromServer = readStream.ReadLine();
JavaScriptSerializer ser = new JavaScriptSerializer();
var dict = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(responseFromServer);
var status = dict["notificationType"]; 
Debug.WriteLine(status);

Я добавил using System.Web.Script.Serialization;

Visual С# 2010 Express сообщает мне, что имя пространства имен Script не существует в пространстве имен System.Web. В результате JavaScriptSerializer недействителен.

Что мне не хватает, чтобы использовать это, или есть лучший способ разбора строки JSON?

Ответ 1

JavaScriptSerializer находится в System.Web.Extensions Assembly. Вы должны добавить его в свои ссылки на проект.

Вы можете получить эту информацию в MSDN

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

Ответ 2

System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var dict = oSerializer.Deserialize<Dictionary<string, object>>(responseFromServer);

Это поможет вам получить значение

Ответ 3

У меня была эта проблема, и я добавил ссылку на проект для System.Web.Extensions, попробуйте добавить эту ссылку к вашему проекту и посмотреть, помогает ли она

Ответ 4

Добавить ссылку System.Web.Extensions

затем введите с помощью System.Web.Script.Serialization;

Теперь вы должны использовать JavaScriptSerializer.

Вы можете использовать лучший подход, добавив Newtonsoft.Json.dll через

Добавить ссылку. Подробнее здесь: http://json.codeplex.com/

Ответ 5

установить пакет Desharp, вы можете использовать эту команду в консоли диспетчера пакетов

Install-Package Desharp -Version 1.2.11