Getting JSON data from a response stream and reading it as a string?

c#, httpwebresponse, json, winforms

Solution

As mentioned in the comments, Newtonsoft.Json is really a good library and worth using -- very lightweight.

If you really want to only use Microsoft's .NET libraries, also consider System.Web.Script.Serialization.JavaScriptSerializer.

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

Problem

I am trying to read a response from a server that I receive when I send a POST request. Viewing fiddler, it says it is a JSON response. How do I decode it to a normal string using C# Winforms with preferably no outside APIs. I can provide additional code/fiddler results if you need them. The fiddler and gibberish images: The gibberish came from my attempts to read the stream in the code below: ``` 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()); ```

Original source

Related problems