将键作为数据的Json模式



我在处理json模式时遇到了一些困难。

假设这是初始的简单json。

[
{
"Field1": 1,
"Description": "Default"
},
{
"Field1": 77,
"Description": "NonDefault"
}
]

这是写的模式,是有效的

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"Field1": {
"type": "integer"
},
"Description": {
"type": "string"
}
}
}
}

我想改变Json,用";字段1";作为关键。"字段1";是整数值。我不知道值,也不知道json中会有多少Field1。

这是最终的JSON

{
"1": {
"Description": "Default"
},
"77": {
"Description": "NonDefault"
}
}

但是如何为这个json编写json模式呢?

TimRoberts的答案就在那里。您想要的是描述patternProperties子模式中的项目,类似于示例模式中的items

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"patternProperties": {
"^[0-9]*$": {
"type": "object",
"properties": {
"Description": { "type": "string" }
}
}
}
}

您可以使用;propertyNames"用一个";图案";元素来创建一个正则表达式来限定密钥名称,而不是全部枚举它们。I、 就个人而言,更喜欢你的第一种布局。

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"patternProperties": {
"^[0-9]*$": { "type": "string" }
}
}

相关内容

  • 没有找到相关文章

最新更新