首页 > 解决方案 > 用于单位转换的 Json 字段依赖

问题描述

我定义了这个 json 模式:

          "type": "object",
          "properties": {
            "kg": {
              "type": "number",
              "multipleOf": 0.01,
            },
            "lbs": {
              "type": "number",
              "multipleOf": 0.01,
            }
          }

我想要 Kg 和 Lbs 之间的依赖关系,这样当用户输入 kg 重量时,lbs 的重量应该自动填充为 kg * 2.20462262 的值,反之亦然,重量等于 lbs * 0.45359237。

例如,如果用户在字段 kg 中输入 5,则 lbs 字段应反映 11.02 作为值,当用户在字段 lbs 中输入 5 时,kg 字段应反映 2.26 作为值。

我知道 json 依赖关系,但如果引用的值不是枚举类型,我不知道如何访问它的值。

标签: jsondependenciesjsonschemaunit-conversion

解决方案


您不能使用 JSON Schema 来表达两个不同数据值之间的约束。您的应用程序将需要这样做。

我建议将or kglbs注意那里的复数不一致?)作为必需的属性,然后您的应用程序将根据该属性转换为首选单位:

{ 
  type: object,
  anyOf: [
    { required: [ kg ] },
    { required: [ lbs ] }
  ],
  properties:
    ...
}

推荐阅读