【问题标题】:Custom names for true/false in JSON SchemaJSON Schema 中 true/false 的自定义名称
【发布时间】:2018-10-21 22:25:58
【问题描述】:

我的 JSON 架构中有一个属性,如下所示:

"properties": {
  "theme": {
    "type": "boolean",
    "title": "Theme",
    "enum": ["Light", "Dark"]
  }
}

这个属性作为布尔值存储在我的数据库表中,1 表示亮,0 表示暗。问题是,当我填写由模式生成的表单时,它会出错,告诉我 root.theme 的值必须是 [true, false] 之​​一,并且不会继续到我的后端处理程序。

我发现我目前正在使用一个解决方案,即将“类型”更改为字符串,并在后端处理它,方法是将收到的字符串值转换为对应的布尔值。

我想知道 JSON 模式是否原生支持布尔属性中 true 和 false 的自定义命名。

【问题讨论】:

  • 嗨伊万。我想你可能对事情的运作方式有一些误解。 JSON 模式使用 JSON。在 JSON 中,truefalse 是它们自己的值。我不知道您所说的“自定义命名”是什么意思。你能扩展一下吗?
  • 嗨。我知道 true 和 false 是它们自己的原语,我的意思是可以使用布尔类型 JSON 模式属性(我使用模式来构建表单),它可以为应用程序的前端提供字符串值最终用户选择,同时为我提供表单提交的布尔值。自然,我可以通过对模板进行额外的 javascript 操作来实现它/通过表单数据发送到的后端处理它,但我想知道如果我希望用户看到 Light|Dark 和系统,是否需要这样的额外代码获取t|f
  • JSON Schema 用于验证 JSON。它不是为生成表单而设计的,但有些人已经实现了将模式转换为表单的方法。简单地说,如果您使用 JSON Schema 来做任何不仅仅是验证的事情,您将不得不自己动手,或者使用您正在使用的工具记录问题。不过,数据操作不太可能与表单生成属于同一工具。通常,您将处理您在 ORM 的通货膨胀和通货紧缩层中描述的那种事情,以避免横切问题。
  • 希望我没有给人留下无用的印象。如果您想讨论,请随时从官方网站加入 JSON Schema slack 服务器 =]
  • 您确实很有帮助,谢谢!考虑到您的话,我可能会坚持到目前为止的内容-当我第一次被介绍给 JSON Schema 时,它是在工具适应它以生成表单的上下文中,但我的印象是它是默认的一部分功能。再次感谢您澄清这些事情确实是分开的。

标签: jsonschema


【解决方案1】:

这在草案 7 中是不可能的(在撰写本文时为当前版本)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2014-09-07
    相关资源
    最近更新 更多