web-dev-qa-db-fra.com

spécifier une valeur peut être une chaîne ou null avec le schéma json

Espérons que cela ne soit pas évident pour les autres car je trouve que les documents sur http://json-schema.org/ manquent de détails plus fins. Je reçois un bloc de json avec certaines propriétés qui peuvent être nulles ou une chaîne. Comment spécifier, dans un schéma json (à analyser par la méthode JsonSchema.Parse De json.NET), qu'une valeur peut être de type null ou de type string?

Y a-t-il quelque chose de simple qui me manque comme fournir un tableau pour le type? Par exemple;

  "member_region": { "type": [ "string", null ] } // this throws an exception

De plus, quelqu'un a-t-il une meilleure source pour les détails du schéma json que json-schema.org? Où puis-je trouver une plus grande sélection d'exemples? Je ne veux pas lire un gros doc/spec pour trouver quelque chose qui peut facilement être démontré dans un exemple de 10 lignes.

42
evanmcdonnal

De http://json-schema.org/latest/json-schema-validation.html#anchor79

La valeur de ce mot-clé DOIT être une chaîne ou un tableau. S'il s'agit d'un tableau, les éléments du tableau DOIVENT être des chaînes et DOIVENT être uniques.

Les valeurs de chaîne DOIVENT être l'un des sept types primitifs définis par la spécification principale.

Ensuite, nous nous référons aux types: http://json-schema.org/latest/json-schema-core.html#anchor8

Il répertorie les chaînes et null. Essayer:

"member_region": { "type": "string, null" }
71
Explosion Pills

Etendre sur Explosion Pills répond si vous optez pour la syntaxe du tableau:

"member_region": { "type": [ "string", "null" ] } // this works

parce que vous indiquez un type et non un exemple, vous ne devriez pas opter pour:

 "member_region": { "type": [ "string", null ] } // this throws an exception
30
zardilior