2014-05-19 8 views
12

Mam dokument json w której część może być zerowa lub podobiekt, tak:Jak określić właściwość jako wartość zerową lub odwołanie?

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

Pytanie brzmi, czy jego model to możliwe w projekcie schematu json v4 używając ref?

Co chciałbym to coś takiego

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

Odpowiedz

18

Co pan pisał powinny działać, jeśli usuniesz "type":"object" z definicji.

Jednak bardziej przejrzystym sposobem określenia alternatyw jest użycie oneOf. Możesz zachować swoją definicję "id" nietknięte, i po prostu użyć:

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

nullable Pole będą wspierane w OpenAPI (aka Swagger) Specyfikacja v3.0.0

Więc z tej nowej specyfikacji twoja definicja będzie wyglądać następująco:

"properties":{ 
    "owner":{ 
     "nullable": true, 
     ... 
    } 
}, 
Powiązane problemy