使用 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