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üsselWerteVorgabe der FeldartWirkung
schemaJSON-Schemaeine Tabelle mit einer ZahlenspalteStruktur 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:

JSONJSON_SCHEMA
WertmodellListe von Einträgen (Label und Unterfelder)Beliebiges JSON nach Schema
Konfigurationansicht, labels, felder, maxein Schema
Ausgabe-Formatterjanein
Bindung an Standardsja, als wiederholbare Quellenein
Excel-ImportDokument, Spaltenregel, Wert unter Labelnur 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.

\ en\ de