是否可以创建一个 JSON 模式来验证哈希图/字典而不是对象?

Is it possible to create a JSON Schema that can validate a hashmap / dictionary as opposed to an object?

因此,如果我有一个对象,我们就称它为一个人,例如:

{
  "email": "foo@bar.com",
  "first"" "foo",
  "last": "bar"
}

这个 Person 对象都可以用 JSON 模式很好地验证。问题是当其中的多个被排列成一个字典时,电子邮件字段被用作键,对象是值。例如:

{
  "foo@bar.com": {
    "email": "foo@bar.com",
    "first"" "foo",
    "last": "bar"
  },
  "you@your.com": {
    "email": "you@your.com",
    "first": "Bob",
    "last": "Bobton"
  },
  "me@mine.com": {
    "email": "me@mine.com",
    "first": "Deb",
    "last": "Debbington"
  }
}

这是构造数据的常用方法。除了可以通过 JSON 模式很好地处理的 Person 值的验证之外,还有许多对字典有用的验证:

是否可以使用 JSON 模式实现这些字典验证?

前两个要求,是的。 您可以使用 patternProperties.

你问的其他两个不可能使用 JSON 模式。对不起。

我的期望是您从 API 收到第一种形式的数据,验证,然后映射缩减到您想要的结构。