如何使用 JSON 架构“默认”? Json.NET 中的属性?

发布于 2024-11-29 00:28:02 字数 373 浏览 2 评论 0原文

如果我有一个指定属性默认值的 JSON 架构,例如

{
    "type" : "object",
    "properties" : {
        "foo" : { "type" : "string" },
        "bar" : { "type" : "string", "default" : "some text" }
    }
}

... 和一个 JSON 字符串,例如

{
    "foo" : "lorem ipsum"
}

... 我如何反序列化该 JSON 字符串,以便将 bar 设置为“某些文本“(默认值)而不是 null?

If I have a JSON Schema that specifies a default value for a property, like

{
    "type" : "object",
    "properties" : {
        "foo" : { "type" : "string" },
        "bar" : { "type" : "string", "default" : "some text" }
    }
}

...and a JSON string like

{
    "foo" : "lorem ipsum"
}

...how can I deserialize that JSON string so that bar is set to "some text" (the default value) instead of null?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我们只是彼此的过ke 2024-12-06 00:28:02

在 json 模式中,“默认”属性只是一个元数据(如“标题”和“描述”),因此如果未提供任何值,则不应将其用作值后备(假设您使用模式反序列化对象) 。也就是说,如果我们想从模式创建文档实例,我个人使用此默认值作为后备创建了一个反序列化器。然而,这并不是一般情况。

In json schemas, the "default" property is only a metadata (as "title" and "description" are) it is therefore not supposed to use it as a value fallback if none is provided (assuming you deserialize an object using a schema). This said, I personally made a deserializer using this default value as a fallback if we want to create an document instance from a schema. It is nevertheless not the general case.

盛装女皇 2024-12-06 00:28:02

我追踪了 Json.NET 源代码中的引用,默认属性显然已被解析,但没有用于任何用途。所以,我自己的问题的答案是:你不能在当前的 Json.NET 版本中使用它。

I traced the references in the Json.NET source code, and the default attribute is apparently parsed, but not used for anything. So, the answer to my own question is: You can't use it in the current Json.NET version.

怕倦 2024-12-06 00:28:02

当移植对象用于多种用途、验证、表单呈现、文档和测试时,架构师决定何时以及如何利用默认值,并且您很可能会使用默认值。如果您正在寻找一种预先打包的通用解决方案,可以处理重复默认值的额外数据存储和传输成本,那么也许其他模式方法具有更好的 .NET 支持 (xml)。

When porting object for many uses, validation, form rendering, documentation and testing it is the architect's decision on when and how to utilize defaults, and you will most likely make use of defaults. If you are looking for a prepackaged one size fits all solution that can handle the extra data storage and transfer costs of the duplicative defaults, then perhaps other schema methodologies have better .NET support (xml).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文