当前位置: 首页 > 知识库问答 >
问题:

如何为包含属性的对象定义JSON模式?

逑兴安
2023-03-14
{
"type": "object",
"name": "MyObj",
"properties": {
    "prop1": {
        "type": "string",
        "description": "prop1",
        "required": true
    },
    "props": {
        "type": "array",
        "items": {
            "type": "object"
            "properties": {
                "key": {
                    "type": "string",
                    "description": "key",
                    "required": true
                },
                "value": {
                    "type": "string",
                    "description": "the value",
                    "required": true
                }
            }
            "description": "the value",
            "required": true
        }
    }
}

共有1个答案

司寇望
2023-03-14

您编写的模式(假设逗号是固定的)描述了表单的数据

{
    "prop1": "Some string property goes here",
    "props": [
        {"key": "foo", "value": "bar"},
        {"key": "foo2", "value": "bar2"},
        ...
    ]
}

如果这是你想要的,那么你已经完蛋了。

但是,我确实想知道为什么在数组中使用键/值对,而您可以使用带有字符串键的JSON对象。使用additionalproperties关键字,可以有一个架构:

{
    "type": "object",
    "name": "MyObj",
    "properties": {
        "prop1": {
            "type": "string",
            "description": "prop1"
        },
        "props": {
            "type": "object",
            "additionalProperties": {
                "type": "string",
                "description": "string values"
            }
        }
    }
}
{
    "prop1": "Some string property goes here",
    "props": {
        "foo": "bar",
        "foo2": "bar2"
    }
}
 类似资料:
  • 问题内容: 是否有可能建立一个JSON模式,它仍然允许但 不 若一个非常特别的属性名存在匹配吗?换句话说,我需要知道是否有可能与声明完全相反。 架构: 比赛: 比赛: 难道 不 匹配: 问题答案: 您可以通过使用关键字来实现。如果架构验证,则父架构将不验证。

  • 问题内容: 给定这样的结构: 是否可以将其映射到: 这样,您最终获得的实例的属性分别设置为和? 问题答案: 我坚信将您的POJO与外部化分开。将您的JSON读取到Map中,然后像这样构建您的Container / ScoreKeeper对象(对于任何错别字都为apols):

  • 本文向大家介绍window.location 对象所包含的属性,包括了window.location 对象所包含的属性的使用技巧和注意事项,需要的朋友参考一下 hash//从井号 (#) 开始的 URL(锚) host//主机名和当前 URL 的端口号 hostname//当前 URL 的主机名 href//完整的 URL pathname//当前 URL 的路径部分 port//当前 URL 的

  • 我正在尝试使用OAS v2定义一个API,它将返回一个有效负载以及一些元数据。 换句话说,对API的响应将是: 有效负载可以是任何内容,并且在不同的场景下会有所不同,唯一的限制是它将是有效的JSON格式。因此,现在,我想将其定义为一个JSON对象,而不定义字段级别的细节。 如何在OAS2/JSON模式中做到这一点? 提前谢谢。

  • 给定的示例模式包含一个字段,该字段是null和string的联合, 我想转换以下 json 对象, 转换成对应于上述模式的avro对象。我用Avro的JsonDecoder用下面描述的代码snppet试了一下, 它会异常失败,