Feldarten
JSON-Schema
Feldart JSON_SCHEMA. Beliebiges JSON nach einem selbst geschriebenen JSON-Schema . Das Schema bestimmt Eingabemaske, Werteumfang und Prüfung; der
Editor schreibt den Wert unverändert zurück. Die Eingabe aus Sicht der Erfassung beschreibt JSON-Schema .
Parameter
| Schlüssel | Werte | Vorgabe der Feldart | Wirkung |
|---|---|---|---|
schema | JSON-Schema | eine Tabelle mit einer Zahlenspalte | Struktur und Maske des Feldes |
Der Editor ist json-editor ; dessen Dokumentation gilt für alles, was das Schema kann.
JSON{ "schema": { "type": "array", "format": "table", "title": " ", "items": { "type": "object", "properties": { "height": { "type": "number", "title": "Höhe" }, "width": { "type": "number", "title": "Breite" } } } } }
Verhältnis zur Feldart JSON
Beide speichern JSON und bestehen nebeneinander, mit verschiedenen Wertmodellen:
JSON | JSON_SCHEMA | |
|---|---|---|
| Wertmodell | Liste von Einträgen (Label und Unterfelder) | Beliebiges JSON nach Schema |
| Konfiguration | ansicht, labels, felder, max | ein Schema |
| Ausgabe-Formatter | ja | nein |
| Bindung an Standards | ja, als wiederholbare Quelle | nein |
| Excel-Import | Dokument, Spaltenregel, Wert unter Label | nur ein vollständiges Dokument |
Für neue Felder ist meist JSON die bessere Wahl. JSON_SCHEMA bleibt für Strukturen, die wirklich frei sein müssen. Bei der Aufteilung der Feldarten
wurden alle bestehenden JSON-Felder dieser Feldart zugeordnet, ohne die Werte anzufassen. Ein Altfeld
steht deshalb hier, auch wenn seine Struktur eine schlichte Tabelle ist.
Ein Altfeld auf JSON umstellen
Übersetzt wird nur die Konfiguration, die Daten bleiben liegen: die Tabellenform [{…},{…}] ist
identisch mit der Form „ohne Labels, mehrere Unterfelder“ der Feldart JSON.
JSON{ "ansicht": "tabelle", "max": null, "felder": [ { "key": "height", "label": "Höhe", "typ": "zahl" }, { "key": "width", "label": "Breite", "typ": "zahl" } ] }
Danach die Feldart unter Grunddaten auf JSON stellen. Zwei Unterschiede zeigen sich beim ersten
Zurückschreiben: leere Zeichenketten fallen weg, und aus {"height": 1} wird {"height": "1"}, weil die
Feldart JSON Zeichenketten schreibt.