JSON模式验证验证数组项不起作用

时间:2018-01-26 12:56:52

标签: json jsonschema json-schema-validator

以下是我要验证的内容:

[编辑后删除 - 请查看以下编辑日期以后编辑]

这应该会失败,因为这里唯一可以接受的项目是“商家” - 但验证不会失败。它过去了。

我无法解决这个问题。我已经尝试了一些方法,它让我无处可去。

这里有什么问题?

----------------------编辑--------------------- -------

我被要求提供更多代码。这是我需要验证的有效负载。它在 PHP

$payload = (object) [];
$payload->query_string = (object) [];
$payload->query_string->include = (object) [
    "merchant_channel",
    "merchant",
];

以下是运行验证器的行:

$this->validator->validate(
    $payload,
    ['$ref' => 'file://Schemas/the-json-file.json']
);

这是我正在运行验证器的文件:

{
  "type": "object",
  "properties": {
    "query_string": {
      "type": "object",
      "properties": {
        "include": {
          "type": "object",
          "properties": {
            "values": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "type": "string",
                    "enum": [
                      "language"
                    ]
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}

我正在使用这个包:

https://github.com/justinrainbow/json-schema

这个包很简单......

  

针对给定模式验证JSON结构的PHP实现。

您不应该知道PHP能够回答特定于JSON模式验证的原始问题!

请不要评论/回答说“你错过了一个引用”或“你错过了一个结束括号”。显然我已经来削减这些代码,所以我可以在Stack Overflow上发布它。

1 个答案:

答案 0 :(得分:0)

它没有开始和结束花括号。