如何将“undefined”添加到JObject集合 - JToken / JValue.Undefined在哪里?

时间:2014-02-16 20:37:30

标签: c# json json.net undefined linq-to-json

使用Json.NET时,我试图使用"JSON to LINQ"支持动态创建JSON结构。

在下文中,jObjectJObject,而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怎么样?

3 个答案:

答案 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个引用“未定义”,但没有解释它们如何使用: