json 模式:验证具有特定键的字典列表
jsonschema: validate list of dictionaries with specifc keys
我正在尝试为字典列表(又名对象数组)编写一个 jsonschema,我在其中验证字典中的键。此示例中的标签是我感兴趣的内容。我想允许任意数量的标签,并希望验证 name
和 value
字段始终存在于标签字典中。这是一个表示为 yaml 的示例输入。
some_field1: "value_a"
some_field2: "value_b"
labels:
- name: "bar"
value: "foo"
- name: "baz"
value: "blah"
这是我到目前为止拼凑的内容,但它没有验证字典中的键。我不确定 additionalProperites 在这种情况下究竟是如何工作的,但我在网上找到了一个例子。
properties:
some_field1:
type: string
default: 'value_a'
some_field2:
type: string
default: 'value_b'
labels:
type: array
items:
type: object
additionalProperties:
type: string
我的用例是我正在尝试为 Kubernetes 创建一个自定义资源定义 (CRD),我在其中验证输入,我的理解是 CRD 使用 openapi3/jsonschema 验证来定义它们的字段。
我找不到有关如何使用特定键验证字典列表的信息。如果您能提供任何帮助,我将不胜感激。
Known/fixed 字典的键可以在 properties
中定义并包含在 required
列表中:
labels:
type: array
items:
type: object
required: [name, value]
properties:
name:
type: string
value:
type: string
additionalProperties:
type: string
我正在尝试为字典列表(又名对象数组)编写一个 jsonschema,我在其中验证字典中的键。此示例中的标签是我感兴趣的内容。我想允许任意数量的标签,并希望验证 name
和 value
字段始终存在于标签字典中。这是一个表示为 yaml 的示例输入。
some_field1: "value_a"
some_field2: "value_b"
labels:
- name: "bar"
value: "foo"
- name: "baz"
value: "blah"
这是我到目前为止拼凑的内容,但它没有验证字典中的键。我不确定 additionalProperites 在这种情况下究竟是如何工作的,但我在网上找到了一个例子。
properties:
some_field1:
type: string
default: 'value_a'
some_field2:
type: string
default: 'value_b'
labels:
type: array
items:
type: object
additionalProperties:
type: string
我的用例是我正在尝试为 Kubernetes 创建一个自定义资源定义 (CRD),我在其中验证输入,我的理解是 CRD 使用 openapi3/jsonschema 验证来定义它们的字段。
我找不到有关如何使用特定键验证字典列表的信息。如果您能提供任何帮助,我将不胜感激。
Known/fixed 字典的键可以在 properties
中定义并包含在 required
列表中:
labels:
type: array
items:
type: object
required: [name, value]
properties:
name:
type: string
value:
type: string
additionalProperties:
type: string