如何对具有固定值的数组使用JSON模式oneOf

时间:2017-07-25 15:17:13

标签: json jsonschema

我想为oneOf指定多个值,并定义了以下成功验证的架构(http://json-schema-validator.herokuapp.com/)。请注意,在此示例中,oneOf下只有一个值。

{
    "id": "test-schema",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "test schema",

    "type": "object",
    "properties": {

        "alpha": {

            "type": "object",
            "properties": {

                "beta": {

                    "oneOf": [
                        {
                            "type": "object",
                            "properties": {

                                "ObjA": {

                                    "type": "object",
                                    "properties": {

                                        "a": {

                                            "type": "array",
                                            "items": {

                                                "type": "number",
                                                "default": [90, 95],
                                                "additionalProperties": false
                                            },
                                            "additionalProperties": false
                                        },

                                        "b": {

                                            "type": "array",
                                            "items": {

                                                "type": "number",
                                                "default": [4, 8],
                                                "additionalProperties": false
                                            },
                                            "additionalProperties": false
                                        },

                                        "c": {

                                            "type": "array",
                                            "items": {

                                                "type": "number",
                                                "default": [0.2, 0.6],
                                                "additionalProperties": false
                                            },
                                            "additionalProperties": false
                                        }
                                    },                                    
                                    "additionalProperties": false
                                }
                            }, 
                            "additionalProperties": false
                        }
                    ]
                }
            },         
            "additionalProperties": false
        }
    },
    "additionalProperties": false
}    

Q1:我使用default来指定初始数组值,但确实希望修复这些值并禁止任何其他值。我怎样才能做到这一点?

在这里回答How to specify which oneOf item a JSON object should take?

Q2:我想在JSON文件中指定beta分配ObjA,该文件验证此架构,我该如何指定?

在这里回答How to specify which oneOf item a JSON object should take?

1 个答案:

答案 0 :(得分:0)

在这里回答How to specify which oneOf item a JSON object should take?

这个链接是我第一次尝试这个问题但是以更复杂的方式提出,在这里我试图简化它。现在回答,所以我引用它。