jsonc

343 阅读4分钟

jsonc

语法

[
    { 
        "name": "指标1", //指标名称
        "levels": { //各个等级
            "A": {
                "desc": "等级A的描述",
                "boundary": [32, 250] //边界值(数值都是不小于),按顺序对应指标,只用于形式是value时
            },
            "B": {
                "desc": "等级B的描述",
                "boundary": [24, 200]
            },
            "C": {
                "desc": "等级C的描述",
                "boundary": [24, 200]
            },
            "D": {
                "desc": "等级D的描述",
                "boundary": [16, 150]
            },
            "E": {
                "desc": "等级E的描述",
                "boundary": [16, 150]
            }
        },
        "form": "level|value", //形式:level-直接选择等级;value-根据取值匹配等级
        "multi": true, //是否多个。形式是level是表示是否允许多个;形式是value是表示是否多个指标
        "level_name": "级别的名称", //级别的名称,只用于形式是level时
        "value_name": "取值的名称", //取值的名称,只用于形式是level时
        "relations": "or_then_and", //指标之间的关系,只用于形式是value时且multi是true时
                                    //and:并且的关系
                                    //or:或者的关系
                                    //or_then_and:前两个是OR的关系,再和第三个是AND的关系
                                    //and_then_or:前两个是AND的关系,再和第三个是OR的关系
        "items": [ //各个指标的定义,只用于形式是value时
            {
                "name": "指标1的名称",
                "type": "enum", //数据类型:number-数值(整数);enum-枚举
                "values": [ //枚举的取值列表
                    "值1",
                    "值2",
                    "值3"
                ]
            },
            {
                "name": "指标2的名称",
                "type": "number",
                "min": 4, //最小取值(含)
                "max": 800 //最大取值(含)
            }
        ]
    }
]

1、列:根据标准判断它是那一级别

image.png

[
    {
        "name": "主办单位", //指标名称
        "levels": { //各个等级
            "A": {
                "desc": "国际和国家级机构/组织主办的赛事" //描述
            },
            "B": {
                "desc": "省级机构/组织、部级单位、同等级企事业单位、全国性行业组织主办的赛事"
            },
            "C": {
                "desc": "地级机构/组织、同等级企事业单位主办的赛事"
            },
            "D": {
                "desc": "县级机构及同等级别社会机构/组织主办的赛事"
            },
            "E": {
                "desc": "乡、镇级机构及社会机构/组织主办的赛事"
            }
        },
        "form": "level", //形式:level:直接选择等级
        "multi": true, //允许多个
        "level_name": "单位性质", //级别的名称
        "value_name": "单位名称" //取值的名称
    },
]

2、列:根据输入的数据判断它是那个级别(两个)

捕获.PNG

[
    { 
        "name": "参赛规模",
        "levels": {
            "A": {
                "desc": "参赛队伍不少于32支或总参赛人数不少与250人", //描述
                "boundary": [
                    32,
                    250
                ] //边界值(数值都是不小于),按顺序对应指标
            },
            "B": {
                "desc": "参赛队伍不少于24支或总参赛人数不少与200人",
                "boundary": [
                    24,
                    200
                ]
            },
            "C": {
                "desc": "参赛队伍不少于24支或总参赛人数不少与200人",
                "boundary": [
                    24,
                    200
                ]
            },
            "D": {
                "desc": "参赛队伍不少于16支或总参赛人数不少与150人",
                "boundary": [
                    16,
                    150
                ]
            },
            "E": {
                "desc": "参赛队伍不少于16支或总参赛人数不少与150人",
                "boundary": [
                    16,
                    150
                ]
            }
        },
        "form": "value", //形式:value:根据取值匹配等级
        "multi": true, //多个指标
        "relations": "or", //指标之间是或者的关系,即只要满足一个即匹配成功
        "items": [ //各个指标的定义
            {
                "name": "参赛队伍数量", //名称
                "type": "number", //类型:number,数值(整数)
                "min": 16, //最小取值
                "max": 3200 //最大取值
            },
            {
                "name": "参赛选手人数",
                "type": "number",
                "min": 150,
                "max": 25000
            }
        ]
    },
]

3、列:根据输入的数据判断它是那个级别(一个)

捕获1.PNG

[
    { 
        "name": "场地条件",
        "levels": {
            "A": {
                "desc": "不少于16块场地",
                "boundary": [
                    16
                ]
            },
            "B": {
                "desc": "不少于12块场地",
                "boundary": [
                    12
                ]
            },
            "C": {
                "desc": "不少于12块场地",
                "boundary": [
                    12
                ]
            },
            "D": {
                "desc": "不少于8块场地",
                "boundary": [
                    8
                ]
            },
            "E": {
                "desc": "不少于8块场地",
                "boundary": [
                    8
                ]
            }
        },
        "form": "value",
        "multi": false, //单个指标
        //只有一个指标时,就不存在指标之间的关系
        "items": [
            {
                "name": "场地数量",
                "type": "number",
                "min": 8,
                "max": 1600
            }
        ]
    }
]

4、列:根据下拉框比赛监督级别、裁判长级别和裁判员数量来判断它是那个级别

image.png

{
        "name": "裁判配置",
        "levels": {
            "A": {
                "desc": "比赛监督或裁判长为国家级,不少于8名裁判员",
                "boundary": [
                    "国家级",
                    "国家级",
                    8
                ]
            },
            "B": {
                "desc": "比赛监督或裁判长为国家级,不少于8名裁判员",
                "boundary": [
                    "国家级",
                    "国家级",
                    24
                ]
            },
            "C": {
                "desc": "比赛监督或裁判长为一级,不少于4名裁判员",
                "boundary": [
                    "一级",
                    "一级",
                    4
                ]
            },
            "D": {
                "desc": "比赛监督或裁判长为二级,不少于4名裁判员",
                "boundary": [
                    "二级",
                    "二级",
                    4
                ]
            },
            "E": {
                "desc": "比赛监督或裁判长为二级,不少于4名裁判员",
                "boundary": [
                    "二级",
                    "二级",
                    4
                ]
            }
        },
        "form": "value",
        "multi": true,
        "relations": "or_then_and", //前两个指标之间OR的关系,在与第三个指标之间AND的关系
        "items": [
            {
                "name": "比赛监督级别",
                "type": "enum", //类型:enum,枚举
                "values": [ //枚举的取值列表
                    "国家级",
                    "一级",
                    "二级"
                ]
            },
            {
                "name": "裁判长级别",
                "type": "enum", //类型:enum,枚举
                "values": [ //枚举的取值列表
                    "国家级",
                    "一级",
                    "二级"
                ]
            },
            {
                "name": "裁判员数量",
                "type": "number",
                "min": 4,
                "max": 800
            }
        ]
    }