JSON数组需要必填字段

时间:2012-11-27 16:35:59

标签: javascript getjson json jsonschema

我正在使用以下定义用户列表的JSON模式。我使用模式一次注册多个用户。

我想知道是否有办法指定JSON中的每个对象都包含至少一个要注册的属性?

这是我的架构:

{
   "description":"Schema definition for the request to register",
   "type":"object",
   "properties":{
      "registerRequests":{
         "type":"array",
         "items":{
            "type":"object",
            "properties":{
               "user":{
                  "type":"object",
                  "properties":{
                     "age":{
                        "type":"integer",
                        "optional":true,
                        "minimum":1950,
                        "maximum":2100
                     },
                     "name":{
                        "type":"object",
                        "properties":{
                           "code":{
                              "type":"string",
                              "pattern":"^[\\w\\s!@#\\$%&\\-\\+=;:'\",\\.\\?\\(\\)\\\\/]{1,500}$"
                           },
                           "Desc":{
                              "type":"string",
                              "pattern":"^[\\w\\s!@#\\$%&\\-\\+=;:'\",\\.\\?\\(\\)\\\\/]{1,500}$"
                           }
                        },
                        "optional":true
                     }
                 }
               }
            }
         }
      }
   },
   "additionalProperties":false
}

我注册两个用户的输入请求:

{
   "registerRequests": [
     {
           "user": {
               "age": "25",
               "Desc": "Test"
           }
       },

       {
           "user": {
               "age": "20"
        }
     }
   ]
}

这里我发送两个用户信息,每个用户对象请求包含至少一个属性。如果我添加第三个没有任何属性的对象,我想在JSON本身中限制请求,说每个用户对象至少需要一个字段。我正在寻找类似于模式或可选的属性。

1 个答案:

答案 0 :(得分:0)

好的,这是一个很晚的答案,但是......

直至并包括草案v3,编号

草案v4(即将发布),是:"minProperties": 1