Как добавить "undefined" в коллекцию JObject - где находится JToken/JValue.Undefined?
При использовании Json.NET я пытаюсь динамически создать структуру JSON с помощью поддержки "JSON to LINQ".
В следующих, jObject
является JObject и JObject.Add принимает (строка, JToken). Однако я не могу узнать, как добавить токен Undefined или Null, и не могу узнать, как создать JValues с соответствующим типом Null/Undefined.
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 */
}
Как явно добавить JToken/JValue для JSON Undefined? Как насчет JSON Null?
3 ответа
Установка свойства в undefined функционально эквивалентна тому, чтобы вообще не устанавливать свойство. Таким образом, если свойство не определено, вы просто не добавляете какие-либо свойства к вашему JObject
, (И это, вероятно, причина, почему undefined
не поддерживается JSON - это полностью избыточно.)
Нуль представлен new JValue((object)null)
, если я правильно помню.
PS С вашим кодом вы не сможете увидеть разницу между строкой "undefined"
и undefined
значение, а также между "null"
а также null
, Вам, вероятно, нужно переосмыслить свой дизайн.
jObject.Add(key, /* how to add "Undefined" token? */);
jObject.Add(key,JValue.CreateUndefined());
Согласно этому вопросу, он не поддерживает undefined
,
После поиска в документах я обнаружил 2 ссылки на "Не определено", но без объяснения того, как их можно использовать: