jsonschema - 如何使用 JSONSchema 接受任何对象字符串值,而不管其键是什么?
问题描述
我有一个系统正在接收 JSON 消息,其中包含来自文件静态分析的元数据。这些字段的名称是从扫描动态生成的,可以是任何有效字符串,但值始终是有效字符串。
例如
{
"filename": "hello.txt",
...
"meta": {
"some file property": "any string",
"some other file property": "another string",
...
}
}
在收到消息之前,我无法知道 meta 中的键是什么,也不知道会有多少键。有没有一种在 JSONSchema 中捕获的方法,只要它们的值始终是字符串,存在什么键并不重要?
解决方案
我想你正在寻找additionalProperties
使用“additionalProperties”进行验证仅适用于与“properties”中的任何名称不匹配且不匹配“patternProperties”中的任何正则表达式的实例名称的子值。
AdditionalProperties 的值可以是 JSON Schema,像这样
...
"additionalProperties" : {
"type": "string"
}
...
如果我在解释中遗漏了任何内容,请随时告诉我,或者提出任何进一步的问题。
推荐阅读
- api - 如何将api输出json转换为csv文件
- javascript - 如何检查一个数组是否包含另一个数组的任何值
- asp.net-core - 没有可用于指定 RuntimeIdentifier 'browser-wasm' 的 Microsoft.AspNetCore.App 运行时包
- java - If line.startsWith("something") don't write this line nor the next line
- karate - 我对仅在空手道中包含的功能有疑问?
- java - 我有一个返回 int 的方法,它告诉我我缺少一个 return 语句。可以在不重写方法的情况下解决这个问题吗?
- sql-server - 使用 SQL Server Management Studio 为表中的前 100 个值创建脚本
- mysql - 过度分区函数中两个时间戳的连接值
- ansible - 为什么有些剧本使用“主机 localhost”或“连接:本地”然后在任务变量上配置主机 IP?
- python - 尝试在 tkinter 中创建滚动条