Is there a way to rewind or step back when using JsonReader?
<p>I'm trying to read the first property name from a JSON object input stream, and then based on its value, maybe "rewind" and read the whole object.</p>

<p>I can read the first property name easily like</p>

<pre><code>JsonReader reader = ...;
while (reader.Read()) {
  if (reader.TokenType == JsonToken.PropertyName) {
    // this is the first property
    break;
  }
}
</code></pre>

<p>But I can't see any method to step back or rewind the reader. </p>

<p>While I understand that lower level seeking might not be supported by the underlying stream, I would expect that JSON tokens which we've already read could be rewinded and re-parsed somehow.</p>

<p>If this is not possible, alternatively is there any way to read only the property names of an object without parsing the contents of each property? I'd like to avoid reading the whole stuff twice only for examining one property.</p>