Häufige Fragen zum JSON-Schema-Prüfer
Wird mein Schema irgendwohin geschickt?
Nein. Die Prüfung läuft vollständig in deinem Browser. Es gibt keinen Upload, keine Speicherung und keine Cookies.
Welche Eingaben erkennt der Prüfer?
Ein reines JSON Schema, OpenAI-Tools aus Chat Completions (function.parameters) und der Responses API (parameters), response_format und text.format mit json_schema, Anthropic-Tools mit input_schema, MCP-Tools mit inputSchema und outputSchema, eine tools/list-Antwort sowie Gemini-functionDeclarations. Auch eine Liste mehrerer Tools geht.
Warum verlangt OpenAI, dass alle Felder in required stehen?
Mit "strict": true erzeugt das Modell immer jedes Feld. Optionale Felder bildest du deshalb als Typ mit "null" ab, etwa "type": ["string", "null"]. Die Korrektur macht genau das.
Was passiert mit minLength, minimum und ähnlichen Grenzen?
Anthropic lehnt sie im strict-Modus ab, Gemini ignoriert einige davon. Die Korrektur schreibt sie deshalb in die description des Feldes, zum Beispiel „(minLength: 3)“. So kennt das Modell die Regel weiterhin. Prüfe die Antwort trotzdem in deinem Code.
Ist ein Schema ohne Fehler sicher gültig?
Nein. Der Prüfer bildet die dokumentierten Regeln ab, nicht die interne Prüfung der Anbieter. Komplexe Schemas können trotzdem abgelehnt werden, und die Dokumentationen ändern sich. Teste das Schema vor dem Einsatz mit einer echten Anfrage.
Was bedeutet JSON-Pointer bei den Fundstellen?
Ein JSON-Pointer wie /properties/titel/minLength ist der Pfad zur Stelle im Schema. Ein einzelnes / steht für die Wurzel. Die Zeichen ~ und / in Feldnamen werden als ~0 und ~1 geschrieben.
Unterstützt der Prüfer YAML oder OpenAPI-Dateien?
Hier nur JSON. Für ganze OpenAPI- oder Swagger-Dateien gibt es OpenAPI zu MCP: Es wandelt jede Operation in ein Tool um und prüft die Namen.
Warum wird oneOf zu anyOf?
Keiner der Anbieter führt oneOf als unterstützt auf, anyOf dagegen alle. Der Unterschied: Bei oneOf darf genau eine Alternative passen, bei anyOf mindestens eine. Für typische Fälle wie „Objekt oder null“ ist das gleichwertig.