如何为具有可变属性名称的对象定义JSON模式

时间:2016-03-29 15:58:38

标签: json

我需要知道如何从以下示例中定义JSON模式,该示例似乎是一个数组,但项目是可变的,标题“数字”列表依次开启。这是来自Web服务的Web响应示例。

  <div id="click-me" class="menu-icon">
    <p>CLICK</p>
  </div>

有谁知道如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

这不是JSON数组,因为它不以[]开头和结尾。它是一个JSON对象,其属性名称可以变化。在代码中,您可以使用DictionaryMap或关联数组来表示,具体取决于您使用的语言。

要为此定义架构,您似乎需要使用带有正则表达式的patternProperties构造来匹配变量属性名称,如section 5.4.4 of the JSON schema spec中所定义。像这样:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "patternProperties": 
    {
        "^[0-9]+$": 
        {
            "type": "object",
            "properties":
            {
                "OCTETS_OUT": { "type": "number" },
                "PACKETS_OUT": { "type": "number" },
                ...
            }
        }
    },
    "additionalProperties": false
}

JSON架构文档显示了使用patternProperties here

的示例