Получение данных JSON из потока ответов и чтение их в виде строки?

Я пытаюсь прочитать ответ с сервера, который я получаю при отправке запроса POST. Просмотр скрипача, он говорит, что это ответ JSON. Как декодировать его в обычную строку с помощью C# Winforms, предпочтительно без внешних API. Я могу предоставить дополнительные результаты кода / скрипача, если они вам нужны.

скрипач и тарабарщина изображения:

GibberishJSON

тарабарщина пришла от моих попыток прочитать поток в коде ниже:

Stream sw = requirejs.GetRequestStream(); 
sw.Write(logBytes, 0, logBytes.Length); 
sw.Close(); 
response = (HttpWebResponse)requirejs.GetResponse();
Stream stream = response.GetResponseStream(); 
StreamReader sr = new StreamReader(stream); 
MessageBox.Show(sr.ReadToEnd());

2 ответов


Как упоминалось в комментариях, Newtonsoft.Json действительно хорошая библиотека и стоит использовать-очень легкий.

Если вы действительно хотите использовать только библиотеки Microsoft .NET, также рассмотрите System.Сеть.Скрипт.Сериализация.Класс javascriptserializer.

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObject = serializer.DeserializeObject(sr.ReadToEnd());

предположим (вы еще не выяснили), что вам нужно на самом деле расшифруйте поток, так как A) получение удаленного потока текста хорошо документировано, и B) вы не можете ничего сделать с не декодированным потоком JSON.

ваш лучший курс действий для реализации System.Web.Helpers.Json:

using System.Web.Helpers.Json
...
var jsonObj = Json.Decode(jsonStream);