Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
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?
–
–
–
object
: an unordered set of name/value pairs.
array
: an ordered collection of values.
value
: a
string
in double quotes, or a
number
, or
true
or
false
or
null
, or an object or an array. These structures can be nested.
string
number
.
JToken
is an abstract base class that represents any one of these possible tokens. If you have some JSON and don't know in advance what might be inside, you can parse it with
JToken.Parse()
and get a result as long as the JSON is well-formed.
JObject.Parse()
and
JArray.Parse()
will throw if the root JSON token is not of the expected type. And there is no
JValue.Parse()
to parse a JSON string you know to represent an "atomic" value, requiring the use of
JToken.Parse()
in such a case.
Similarly,
JToken.FromObject()
may be used to serialize any sort of c# object to a
JToken
hierarchy without needing to know in advance the resulting JSON type. This can be useful e.g. when writing generic serialization-related code.
–
–
Thanks for contributing an answer to Stack Overflow!
-
Please be sure to
answer the question
. Provide details and share your research!
But
avoid
…
-
Asking for help, clarification, or responding to other answers.
-
Making statements based on opinion; back them up with references or personal experience.
To learn more, see our
tips on writing great answers
.