Die Eigenschaften (Schlüssel/Wert-Paare) eines Objekts werden mit dem Schlüsselwort properties definiert. Der Wert von Eigenschaften ist ein Objekt, wobei jeder Schlüssel der Name einer Eigenschaft ist und jeder Wert ein JSON-Schema ist, das zum Überprüfen dieser Eigenschaft verwendet wird.
additionalProperties kann das Objekt so einschränken, dass es entweder keine zusätzlichen Eigenschaften enthält, die nicht explizit aufgelistet sind, oder ein Schema für zusätzliche Eigenschaften des Objekts angeben kann. Manchmal ist das nicht genug, und Sie möchten vielleicht die Namen der zusätzlichen Eigenschaften einschränken, oder Sie möchten vielleicht sagen, dass der Wert bei einem bestimmten Namen einem bestimmten Schema entsprechen sollte. Hier kommt patternProperties ins Spiel: Es handelt sich um ein neues Schlüsselwort, das von regulären Ausdrücken zu Schemas passt. Wenn eine zusätzliche Eigenschaft einem bestimmten regulären Ausdruck entspricht, muss sie auch für das entsprechende Schema validiert werden.
Hinweis: Bei der Definition der regulären Ausdrücke muss beachtet werden, dass der Ausdruck irgendwo im Namen der Eigenschaft übereinstimmen kann. Zum Beispiel passt der reguläre Ausdruck "p" zu jedem Eigenschaftsnamen mit einem p darin, wie "Apfel", nicht nur zu einer Eigenschaft, deren Name einfach "p" ist. Es ist daher normalerweise weniger verwirrend, den regulären Ausdruck in^... $ zu umgeben, zum Beispiel "^ p $".
für weitere Referenz - http://spacetelescope.github.io/understanding-json-schema/reference/object.html
Der erste Absatz widerspricht direkt dem Beispiel i gegeben haben: Wenn ich das patternProperties Schlüsselwort Eigenschaften ändern, ohne den Rest des Schemas zu ändern, Es funktioniert immer noch, dh das Schlüsselwort properties verarbeitet auch den regulären Ausdruck. –
kann aufgrund Ihres Schlüsselwortes properties Ihre Regex als eine Eigenschaft mit Werttyp nur als Zahl behandelt haben und Sie geben eine Zahl an, warum sie Ihren Wert akzeptiert hat. Ich bin mir nicht sicher .. – Kandy