从响应流中获取JSON数据并将其作为字符串读取?

Chr*_*tig 7 c# json httpwebresponse winforms

我正在尝试从发送POST请求时收到的服务器读取响应.查看fiddler,它说这是一个JSON响应.如何使用C#Winforms将其解码为普通字符串,最好不使用外部API.如果您需要,我可以提供额外的代码/提琴手结果.

小提琴和乱码图像:

胡言乱语JSON

我试图在下面的代码中读取流:

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());
Run Code Online (Sandbox Code Playgroud)

sta*_*mes 16

正如评论中所提到的,Newtonsoft.Json确实是一个很好的库,值得使用 - 非常轻量级.

如果您真的只想使用Microsoft的.NET库,还可以考虑使用System.Web.Script.Serialization.JavaScriptSerializer.

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObject = serializer.DeserializeObject(sr.ReadToEnd());
Run Code Online (Sandbox Code Playgroud)