Map of Array的JSON Schema <string,string []>;键和值对等属性

时间:2016-11-28 15:23:19

标签: json jsonschema

JSON包含运行时键和值对

{
  "user_id" : 2
  "applicationName": "RetailPos",
  "permissions": {

  "Purchase": [
    "Access",
    "Create",
    "Delete",
    "Modify"
   ],
  "Sales": [
    "Access",
    "Create",
    "Delete",
    "Modify"
   ]
  },
 "group": "Admin Group"
}

考虑上面的示例,此处PurchaseSales是目标,值AccessCreate ...是操作。这里目标和操作都是运行时值。

在此JSON Schema Validation中找不到足够的样本来创建所需的架构。

{
"required": true,
"$schema": "http://json-schema.org/draft-03/schema",
"type": "object",
"properties": {
     "user_id": {
        "type": "number",
        "required": true
    },
     "application_name": {
      "type":"string",
      "required":true
    },

    //Permission schema

    "group" : {
      "type" :"string",
      "required":true
    }
  }
}

任何文件或相关样本都会有用。

1 个答案:

答案 0 :(得分:1)

您可以使用“additionalProperties”关键字。 例如:

{
  "$schema": "http://json-schema.org/draft-03/schema",
  "type": "object",
  "properties": {
     "user_id": {
        "type": "number",
        "required": true
    },
     "applicationName": {
      "type":"string",
      "required":true
    },   
    "permissions": {
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": ["Access", "Create", "Delete", "Modify"]
        },
       }
     },

    "group" : {
      "type" :"string",
      "required":true
    }
  }
}

更多信息herehere