如何使用JSONSchema接受任何对象字符串值,无论其键是什么?

时间:2018-05-01 15:16:10

标签: jsonschema

我有一个接收JSON消息的系统,其中包含来自文件静态分析的元数据。这些字段的名称是从扫描中动态生成的,可以是任何有效的字符串,但该值始终是有效的字符串。

e.g。

{
    "filename": "hello.txt",
    ...
    "meta": {
        "some file property": "any string",
        "some other file property": "another string",
        ...
    }
}

在收到消息之前,我无法知道meta中的键是什么,也不知道会有多少键。有没有一种方法可以在JSONSchema中捕获哪些键存在并不重要,只要它们的值总是字符串?

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找additionalProperties

  

使用" additionalProperties"进行验证仅适用于儿童   实例名称的值与"属性"中的任何名称都不匹配,   并且不匹配" patternProperties"。

中的任何正则表达式

additionalProperties的值可以是JSON Schema,如此

...
"additionalProperties" : {
  "type": "string"
}
...

如果我在解释中遗漏了任何内容,或者提出任何其他问题,请随时告诉我。