2014-05-19 2 views
12

나는 다음과 같이 일부가 null 또는 하위 객체가 될 수있는 JSON 문서가 : 그 수는 심판을 사용하여 JSON 스키마 초안 V4이를 모델로하는 경우속성을 null 또는 참조로 지정하는 방법은 무엇입니까?

[{ 
    "owner":null  
}, 
{ 
    "owner":{ 
     "id":1 
    } 
}] 

질문은? 내가 좋아하는 것이 무엇

당신이 정의에서 "type":"object"를 제거하는 경우, 작업을해야 게시 한 어떤이

{ 
    "type":"object", 
    "properties":{ 
     "owner":{ 
      "type":["null", "object"], 
      "$ref":"#/definitions/id" 
     } 
    }, 
    "definitions":{ 
     "id":{ 
      "type":"object", 
      "properties":{ 
       "id":{ 
        "type":"number" 
       } 
      } 
     } 
    } 
} 

답변

18

같은 것입니다.

그러나 대안을 지정하는 더 명확한 방법은 oneOf을 사용하는 것입니다. 당신은 온전히 당신의 "id" 정의를 유지하고, 바로 사용할 수 있습니다

"owner":{ 
     "oneOf": [ 
      {"type": "null"}, 
      {"$ref":"#/definitions/id"} 
     ] 
    } 
0

nullable 필드가 OpenAPI를 (일명 허세)에서 지원됩니다 사양

v3.0.0 그래서이 새로운 스펙으로 정의과 같습니다

"properties":{ 
    "owner":{ 
     "nullable": true, 
     ... 
    } 
}, 
관련 문제