Arbeiten mit JSON-Zeigern

Automatisch übersetzt von Deepl

In 4D v16 R4 haben wir die Objektbefehle erweitert, so dass Sie JSON-Objekte validieren können. 4D v16 R5 geht sogar noch weiter und führt die Unterstützung von JSON-Zeigern ein. Großartig – aber was ist ein JSON-Zeiger und was kann ich damit tun?

Genauso wie man nicht für jeden Angestellten die Unternehmensdaten in einem Datenbankdatensatz speichert (sondern stattdessen einen Link auf den Unternehmensdatensatz verwendet), kann es sehr nützlich sein, ein JSON-Dokument mit Teilen zu strukturieren, die an verschiedenen Stellen wiederverwendet werden können.

Nehmen wir das Beispiel einer Website-Bestellung: Der Kunde gibt die Lieferadresse ein und gibt die Rechnungsadresse als dieselbe an. Anstatt die Adressinformationen zu duplizieren, können wir die Lieferadresse als Verweis auf die Rechnungsadresse definieren.

Ein anderes Szenario ist die Definition eines Vorlagenobjekts mit Standardeigenschaften, die im JSON-Format gespeichert sind, und die Zusammenführung einiger der Eigenschaften mit Informationen, die in einer separaten JSON-Datei gespeichert sind.

Objekte, die Zyklen enthalten( d. h. zwei Objekte, die sich gegenseitig enthalten), können in JSON nicht in Strings zusammengefasst werden. JSON-Zeiger sind eine Möglichkeit, die zyklische Referenz auszudrücken und gleichzeitig die Kompatibilität mit dem JSON-Format zu wahren.

JSON-Zeiger KONZEPT

JSON Pointer ist ein Standard, der eine Stringsyntax definiert, die für den Zugriff auf ein bestimmtes Feld oder einen Schlüsselwert in demselben oder einem anderen JSON-Dokument verwendet werden kann. Er besteht aus Zeichenketten, die durch das Zeichen „/“ getrennt sind. Diese Strings geben entweder Schlüssel in Objekten oder Indizes in Arrays an. Die Syntax für JSON-Zeiger ist in RFC 6901 definiert.

Zum Beispiel: Dieses Objekt:

{
    "foo": {"$ref": "#/bar"},
    "bar": "42"
}

Kann aufgelöst werden als:

{
   "foo": "42",
   "bar": "42"
}

NEUER BEFEHL

Der Befehl JSON resolve pointers Befehl analysiert alle JSON-Zeiger, die in dem als Parameter übergebenen Objekt gefunden werden, im Hinblick auf einige Optionseinstellungen (falls vorhanden). Der Befehl gibt dann ein Objekt mit dem Erfolgsstatus, dem Ergebniswert und einer möglichen Liste von Fehlern zurück.

EIN paar Beispiele… das ist immer hilfreich!

Schauen Sie sich unsere Beispieldatenbank-Demo an, um mehr darüber zu erfahren (und zu verstehen), wie JSON-Zeiger funktionieren!

Datenbank-Beispiel

Zusätzlich zur Demo hier ein weiteres Beispiel – nehmen wir eine $object Variable, die folgendes enthält:

Wenn ich den folgenden Code ausführe:

$result:=JSON Resolve pointers($object)
TRACE

Hier ist, was ich in den Variablen $object und $result erhalte:

blank

Beachten Sie, dass $result ein Objekt ist, das sowohl den Erfolgsstatus als auch den zurückgegebenen Wert enthält. Wenn es Fehler gegeben hätte, wären diese ebenfalls enthalten gewesen.

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.