提问者:小点点

JSON架构验证验证数组项不工作


以下是我试图验证的东西:

[编辑后删除-请参阅以下编辑以获取最新代码]

这应该失败,因为这里只有“商家”才应该被接受,但验证不会失败。它过去了。

我无法解决这个问题。我试过几种方法,但都没用。

这里怎么了?

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

我被要求提供更多的代码。这是我需要验证的有效载荷。它是用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模式验证的!

请不要评论/回答诸如“你错过了一个报价”或“你错过了一个结束括号”之类的话。显然,我必须减少这段代码,这样我就可以在堆栈溢出时发布它。


共1个答案

匿名用户

它缺少开头和结尾的花括号。