【问题标题】:joi validationerror 'value' must be an arrayjoi validationerror 'value' 必须是一个数组
【发布时间】:2021-04-21 11:28:03
【问题描述】:

我是 JSON 新手。我有一个提到的架构:

*

const schema = Joi.array().min(3).has({
    Name: Joi.string().required(),
    Type: Joi.string().required(),
    Price: Joi.number().required(),
});

我的 JSON 是这样的:

{
    "foods": [
    {
      "Name": "Item1",
      "Type": "Category1",
      "Price": 14
    },
    {
      "Name": "Item2",
      "Type": "Category2",
      "Price": 8
    },
    {
      "Name": "Item3",
      "Type": "Category1",
      "Price": 10
    }
  ]
}

但是当我验证这一点时,我收到以下错误: joi validationerror 'value' 必须是一个数组。

请让我知道 JSON 对象中需要更改哪些内容才能由架构验证。

【问题讨论】:

    标签: json joi


    【解决方案1】:

    您的架构需要一个最小长度为 3 的数组作为根,但您正在传递一个具有单个属性 foods 的对象,该属性是一个数组。所以你必须摆脱周围的物体。

    这将是验证器的有效输入

    [
      {
        "Name": "Item1",
        "Type": "Category1",
        "Price": 14
      },
      {
        "Name": "Item2",
        "Type": "Category2",
        "Price": 8
      },
      {
        "Name": "Item3",
        "Type": "Category1",
        "Price": 10
      }
    ] 
    

    【讨论】:

    • 感谢您的帮助。我的理解是 JSON 总是以 {} 错误开头。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 2021-06-08
    • 2018-04-30
    • 1970-01-01
    相关资源
    最近更新 更多