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



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

在下文中,jObject是 JObject 和 JObject.Add takes (string, JToken)。但是,我找不到如何添加未定义或空令牌 - 也无法找到如何使用适当的空/未定义类型创建 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 Undefined显式添加 JToken/JValue?对于 JSON 空值怎么样?

将属性设置为 undefined 在功能上等效于根本不设置该属性。因此,如果属性未定义,则只需不要向JObject添加任何属性即可。(这可能是 JSON 不支持 undefined 的原因——它是完全多余的。

如果我没记错的话,空值用 new JValue((object)null) 表示。

附言使用代码,您将无法区分字符串"undefined"undefined值,以及"null"null之间的区别。您可能需要重新考虑您的设计。

jObject.Add(key, /* how to add "Undefined" token? */);
jObject.Add(key,JValue.CreateUndefined());

根据这个问题,它不支持undefined

搜索文档后,我发现了 2 个对"未定义"的引用,但没有解释如何使用它们:

  • Json转换字段
  • JTokenWriter.WriteUndefined Method

最新更新