As a follow up to my question here: JSON.NET: Obtain JObject from JProperty Value ...
I read links and digested the above comments and advice. Now I wonder: Is there a good reason why there is no "direct" (i.e., easy) way to turn the Value of a JProperty object into a JObject? It seems like a lot of work to get to a JToken and then have to construct if statements, etc. This isn't to complain about the extra work; rather, it's to admit that I still think I don't understand the true purpose of JToken. At one time, all FedEx packages first routed to Memphis: It seems that all objects can/should go to JToken first then be parceled to the actual target object type. Is that a way to think about it?
In other words, is there ever a good reason to use JToken--or is it just that so many other functions return a JToken and then you have to just deal with that? The JSON.NET manual gives ways to cast JToken to other types (http://www.newtonsoft.com/json/help/html/Operators_T_Newtonsoft_Json_Linq_JToken.htm) but doesn't mention going from JToken to JObject...
I find that JObject is usually what I want to have in order to work with JSON and to map from JSON to my .NET classes and back again--as well as doing a host of other operations. I still wonder what is the compelling reason to ever use a JToken object?