Проблема пространства имен 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 C# 2010 Express сообщает мне имя пространства имен Script не существует в пространстве имен System.Web, В результате JavaScriptSerializer не является действительным.

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

5 ответов

Решение

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

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

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

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

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

Теперь вы должны получить действительный JavaScriptSerializer.

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

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

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

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

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

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

Install-Package Desharp -Версия 1.2.11

Другие вопросы по тегам