Wprowadziliśmy walidację schematu json (za pomocą newtonsoft) na naszej warstwie odpoczynku. To naprawdę robi różnicę, ale mam pytanie o możliwość i jak.sprawdzanie poprawności schematu json. Jak mogę zaakceptować tablicę lub wartość zerową?
Dla określonej właściwości, następujące jest prawidłowy (według właściciela produkt):
.... wybory: [] .......
.... wybory: [ "hello", "świat"]
.... wyborów: null .....
Oto stopniała przykładem definicji schematu json
{
'description': 'myDescription',
'type': 'object',
'properties':
{
'name': {'type':'string', 'required': true},
'description': {'type':'string'},
'choices': {'type': 'array',
'items': {'type': 'string'}}
}
Oczywiście pierwsze 2 przykłady przechodzą proces sprawdzania poprawności, ale drugi z nich kończy się błędem "oczekiwano tablicy".
Właściwość jest opcjonalna.
Na marginesie, jeśli ktoś ma dobry link do pełnego zestawu dokumentacji na temat definicji schematów Json, chciałbym go zdobyć. Nie znalazłem dobrego pojedynczego źródła, ale jestem pewien, że istnieje.
Dziękuję.
-r
Dziękuję. To rozwiązało problem. Odkryłem również "type": "any", który był również użyteczny w niektórych naszych właściwościach, gdzie typ był zależny od innych atrybutów ładunku. –
W dalszym badaniu go znalazłem to, co było pomocne i miało kilka lepszych przykładów: http://tools.ietf.org/html/draft-zyp-json-schema-03 –
@RogerJoys tak, patrzyłem na to. Jeśli opublikujesz inne pytania dotyczące jsonów na SO, prawdopodobnie odpowiem na nie. Są dość niewykorzystane, więc nie ma na nich zbyt wiele informacji, ale używam ich trochę, więc znam przynajmniej wszystkie podstawy i kilka innych sztuczek. – evanmcdonnal