设计规则-JSON

格式化规则

架构编辑器应遵循 JSON 格式设置规则,如下所述:

  • 到处使用骆驼大小写符号
  • 在打开大括号 [] 之后,在关闭大括号之前,以及当对象具有多个属性或单个对象/数组属性时,使用新行
  • 使用前大括号 [] 之后的空间,在关闭大括号之前,以及当对象具有不是对象/数组的单个属性时。这在处理大量引用或基元类型属性时很有用,并允许更好的可读性。
  • 使用冒号后的空间 :
  • 不要在冒号前使用空格:
  • 在阵列打开支架 [ 和数组右括号之前] 使用新行
  • 在逗号后使用新行 ,
  • 不要在逗号之前使用空格 ,
  • 始终在对象大括号 [和数组大括号] 中使用缩进
  • 使用 4 个空格进行缩进(而不是制表符)

下面是一个架构的示例,由这些规则格式化:

{
        "title": "Base schema",
        "type": "object",
        "properties": {
            "a": { "type": "string" },
            "b": {
                "type": "integer",
                "maximum": 50
            },
            "c": {
                "type": "object",
                "properties": {
                    "x": { "type": "number" },
                    "y": { "type": "string" }
                }
            },
            "d": { "$ref": "#/RefType" },
            "e": {
                "code": {
                    "enum": [
                        "create",
                        "update",
                        "delete",
                        "void"
                    ]
                }
            }
        }
    }

对于数组,我们将采用类似的方法,并允许单个值保持在同一行:

"必需": [ "值"

定位

使用本地化架构作为基(XSD)/扩展(JSON架构)。

JSON 架构:

"Localization": {     
    "title": "Localization",     
    "description": "Can be used for any entity to specify localization language code",             
    "type": "object",    
    "properties": {         
        "lang": { "$ref": "codelist#/LanguageCodeList" }     
    } 
} 

在需要本地化的任何其他架构中,只需使用"allOf"来包括此架构:

"SomeSchema" : {     
    "allOf": [         
        { "$ref": "common/basic#/Localization" }     
    ] 
}

默认情况下,进一步的核心类型"NameType"和"TextType"功能本地化,可用于需要多个语言字符串的地方。

多次发生

当结构需要多次出现时,始终使用数组。