title: What is the correct way to use JSON.NET to parse stream of JSON objects?
body: <p>I have a stream of JSON objects that looks somewhat like this:</p>
  
  <pre><code>{...}{...}{...}{...}...
  </code></pre>
  
  <p>So basically a concatenated list of JSON objects without any separator.
  What's the proper way to deserialize those into an <code>IEnumerable&lt;T&gt;</code> using JSON.NET? At the moment I tried something like </p>
  
  <pre><code>var serializer = new JsonSerializer();
  serializer.CheckAdditionalContent = false;
  
  using (var reader = new StreamReader(stream))
  using (var jsonReader = new JsonTextReader(reader)) {
      reader.SupportMultipleContent = true;
      reader.Read();
      while (reader.TokenType != JsonToken.None) {
          yield return serializer.Deserialize&lt;TResult&gt;(reader);
      }
  }
  </code></pre>
  
  <p>But this fails with</p>
  
  <pre><code>Newtonsoft.Json.JsonSerializationException: Unexpected token while deserializing object: EndObject. Path '', line 1, position 55.
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
    at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader)
  </code></pre>
  
  <p>Obviously I need to move the reader after the <code>Deserialize</code> call, but how do I do this?</p>