Skip to content

Instantly share code, notes, and snippets.

@jonathanpeppers
Last active February 4, 2017 05:25
Show Gist options
  • Save jonathanpeppers/3968dc19715152fe05a4cfebe1f32626 to your computer and use it in GitHub Desktop.
Save jonathanpeppers/3968dc19715152fe05a4cfebe1f32626 to your computer and use it in GitHub Desktop.
JSON from Stream
//reuse this
private JsonSerializer _serializer = new JsonSerializer();
var response = await _httpClient.GetAsync("http://chucknorris.com/api/dropkick");
response.EnsureSuccessStatusCode();
using (var stream = await response.Content.ReadAsStreamAsync())
using (var reader = new StreamReader(stream))
using (var json = new JsonTextReader(reader))
{
return _serializer.Deserializer<YourClass>(json);
}
//If you need logging for development, use #if DEBUG and JsonConvert otherwise
#if DEBUG
using (var stream = await response.Content.ReadAsStreamAsync())
using (var reader = new StreamReader(stream))
{
string text = reader.ReadToEnd();
Debug.WriteLine("RECEIVED: " + text);
return JsonConvert.DeserializeObject<YourClass>(text);
}
#else
using (var stream = await response.Content.ReadAsStreamAsync())
using (var reader = new StreamReader(stream))
using (var json = new JsonTextReader(reader))
{
return _serializer.Deserializer<YourClass>(json);
}
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment