title: Loose typing option for Json.NET similar to GSON
body: <p>In GSON, you can deserialize into a JsonObject, which in turns allows you to access JsonElements and call methods such as getAsString(), getAsInt(), etc...</p>
  
  <p>This is incredibly useful for my use case: I am serializing data with JSON and sending it over a network. Data is sent along with protocol identifiers which tells the client how to process the data. I do not want to create a class for every different sort of protocol, so deserializing as a JsonObject allows me a lot of flexibility.</p>
  
  <p>I can't find an analogous way to do this in C#. I figure I need to roll my own JsonElement/Object/Array/Primitive hierarchy, but I don't really know where to begin. Is that even the best way to do it?</p>
  
  <p>I want to:</p>
  
  <p>Deserialize json in C# into a structure which lets me access data as specific types, without using a class "skeleton" for the data.</p>
  
  <p>EDIT:</p>
  
  <p>I am restricted to .NET 3.5</p>