gpt4 book ai didi

javascript - json模式中基于枚举值的两种方式绑定(bind)依赖

转载 作者:行者123 更新时间:2023-12-04 10:40:13 24 4
gpt4 key购买 nike

我有一个大四学生,我必须验证以下 json 数据的模式。
{
'userId': 123,
'userType': CUSTOMER
}

JSON相关信息:userId是整数,userType是枚举 ['Customer','Admin','Guest']所以问题是我想验证来自 JSON 模式的 JSON 数据,基于:

  • 如果 userId存在然后userType是必须的。
  • 如果 userType ['Customer','Admin']存在但 userId 不存在,那么它不应该验证 JSON 数据。
  • 但是如果 userType['Guest']那么他们的 userId 是必需的。

  • 在这里,我已经达到了第 1 点,但无法达到第 2 点和第 3 点:
    {
    'type': 'object',
    'properties': {
    'user': {
    'type': 'integer',
    'minimum': 0
    },
    'userType': {
    'type': 'string',
    'enum': ['Customer','Admin','Guest'],
    }
    },
    'dependencies': {
    'userId': ['userType']
    }
    }

    任何人都可以为此建议我 json 模式解决方案吗?

    最佳答案

    我认为您可以使用属性 anyOf 来解决它的 json 架构,您可以添加多个架构来验证 userTypeCustomerAdmin如果用户类型是 Guest,则强制使用一种模式强制另一个,像这样:

    {
    "anyOf": [
    {
    "type": "object",
    "properties": {
    "user": {
    "type": "integer",
    "minimum": 0
    },
    "userType": {
    "type": "string",
    "enum": [
    "Customer",
    "Admin"
    ]
    }
    }
    },
    {
    "type": "object",
    "properties": {
    "user": {
    "type": "integer",
    "minimum": 0
    },
    "userType": {
    "type": "string",
    "enum": [
    "Guest"
    ]
    },
    "userId": {
    "type": "string"
    }
    }
    }
    ]
    }

    关于javascript - json模式中基于枚举值的两种方式绑定(bind)依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59963930/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com