使用Json.NET时,我试图使用"JSON to LINQ"支持动态创建JSON结构。
在下文中,jObject
是JObject,而JObject.Add是(字符串,JToken)。但是,我无法找到如何添加Undefined或Null标记 - 我也无法找到如何使用适当的Null / Undefined类型创建JValues。
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 */
}
如何为未定义的JSON显式添加JToken / JValue? JSON Null怎么样?
答案 0 :(得分:8)
将属性设置为未定义在功能上等同于根本不设置属性。因此,如果属性未定义,则只是不向JObject
添加任何属性。 (这可能是JSON不支持undefined
的原因 - 它完全是多余的。)
Null 由new JValue((object)null)
表示。
P.S。使用您的代码,您将无法区分字符串"undefined"
和undefined
值,以及"null"
和null
之间的区别。您可能需要重新考虑您的设计。
答案 1 :(得分:3)
jObject.Add(key, /* how to add "Undefined" token? */);
jObject.Add(key,JValue.CreateUndefined());
答案 2 :(得分:1)
根据this question,它不支持undefined
。
在搜索文档后,我发现有2个引用“未定义”,但没有解释它们如何使用: