包含两个对象和一个布尔值的字符串的 JsonSchema 验证?

JsonSchema validation of string containing two objects and one bool?

我希望重用项目中的代码,该项目看起来像第一个代码块,但需要一些帮助来执行 json 架构(第二个代码块) 而不是包含两个对象和一个布尔值,而不仅仅是一个对象?

猜测了一些 allOf 但不太确定如何使用它。

string schemaJson = @"{
            'description': 'onlyOneObject',
            'type': 'object',
            'properties': {
                'personId': { 'type': 'string', 'minLength' : 6 },
                'code': { 'type': 'string', 'minLength' : 3 }                       
             },
             'required' : [ 'personId' , 'code' ]
         }";
        
        JSchema schema = JSchema.Parse(schemaJson);

       

所以像这样的事情我需要你的专家帮助,因为我不太确定语法。

 string schemaJson = @"{
            'description': 'firstObject',
            'type': 'object',
            'properties': {
                'personId': { 'type': 'string', 'minLength' : 6 },
                'code': { 'type': 'string', 'minLength' : 3 }                       
             },
             'required' : [ 'personId' , 'code' ]

            'description': 'secondObject',  ??? Can I write the second object like this???
            'type': 'object',
            'properties': {
                'name': { 'type': 'string', 'minLength' : 6 },
                'code2': { 'type': 'string', 'minLength' : 3 }                       
             },
             'required' : [ 'name' , 'code2' ]

             'description': 'yeahOrNay',
             'type': 'bool'
             something something for bool???
         }";

这就是我一直在寻找的答案......包含两个对象和一个布尔值的 schemaJson 结构。 (不是每个道具都需要验证,因为它是我所追求的结构)

感谢我自己,因为有些人认为根据给定的信息无法回答 :)

 string schemaJson = @"{
           'description': 'myObject',
           'type': 'object',
           'properties': {
           'firstObject': {
                'type': 'object',
                'properties': {
                'NUMBER': { 'type': 'integer' } 
                }
            },
           'secondObject': { 
                'type': 'object',
                'properties': {
                'NUMBER': { 'type': 'integer' } 
                }
            },
           'yeahOrNay': { 'type': 'boolean' }                        
            },
        }";