When using Json.NET, I am trying to create a JSON structure dynamically using the "JSON to LINQ" support.
In the following, jObject
is a JObject and JObject.Add takes (string, JToken). However, I cannot find out how to add either an Undefined or a Null token - nor can I find out how to create JValues with the appropriate Null/Undefined type.
string value = GetValue();
if (value == "undefined") {
jObject.Add(key, /* how to add "Undefined" token? */);
} else if (value == "null") {
jObject.Add(key, /* how to add "Null" token? */);
} else {
jObject.Add(key, new JToken(value)); /* String value/token */
}
How do I explicitly add a JToken/JValue for a JSON Undefined? How about for a JSON Null?
According to this question, it doesn't support
undefined
.After searching the docs, I found 2 references to "Undefined", but no explanation on how they might be used:
Setting a property to undefined is functionally equivalent to not setting the property at all. So, if the property is undefined, you just don't add any properties to your
JObject
. (And this is probably the reason whyundefined
isn't supported by JSON — it's completely redundant.)Null is represented by
new JValue((object)null)
, if I remember correctly.P.S. With your code, you won't be able to tell the difference between a string
"undefined"
and anundefined
value, as well as between"null"
andnull
. You probably need to rethink your design.