Altova XMLSpy 2024 Enterprise Edition

Eine Formel ist ein XQuery 3.1.Ausdruck, der eine Ausgabe (entweder ein Nodeset oder eine Berechnung) für die Anzeige in der JSON-Grid-Ansicht generiert. In der Abbildung unten wird z.B. die Summe der Elemente (Items) 1 bis 4 berechnet und das Resultat (28) in einer separaten Zeile angezeigt. Jede Formel wird separat ausgeführt. Andere Filter oder Formeln im Dokument haben keine Auswirkung darauf.

 

Informationen zur Erstellung von XQuery-Ausdrücken für JSON-Dokumente finden Sie im Abschnitt XQuery-Ausdrücke für JSON.

 

Anmerkung:Sie können Ausdrücke für Filter und Formeln in der Grid-Ansicht aus Gründen der Übersichtlichkeit auch in mehreren Zeilen eingeben. Um im Ausdruck eine neue Zeile hinzuzufügen, drücken Sie Strg+Eingabetaste.
JSONGridViewFormulas01

Wenn es sich beim Dokument um ein JSON5- oder JSONC-Dokument handelt,

 

wird die Formel als JSON-Kommentar in das Dokument geschrieben.

Optional kann auch die Ausgabe der Formel im JSON-Dokument als (nicht kommentierter) Code gespeichert werden. Klicken Sie dazu auf das Diskettensymbol der Formel (siehe Abbildung unten). Wenn die Formel nicht als JSON-Inhalt gespeichert wird, so wird sie nur als Dokument-Metadaten gespeichert, um in der Grid-Ansicht angezeigt werden zu können. Beachten Sie, dass das Diskettensymbol nur in JSON5- und JSONC-Dokumenten und nicht in anderen JSON-Dokumenttypen zur Verfügung steht.

 

 

 

In der obigen Abbildung werden mit der Formel die Mitglieder einer Sequenz addiert. Bei diesen Mitgliedern handelt es such jeweils um das Produkt der Werte price und quantity der einzelnen Objekte des Array items. Die Iteration, um die einzelnen Objekte auszuwählen und diese jeweils der Variablen \$item zuzuweisen, wird folgendermaßen definiert: for \$item in ?items?*. Wichtig in diesem Zusammenhang ist der Kontext-Node. Es handelt sich hierbei um den Parent Node der Formel und folglich um den Parent-Node des Node items. Jedes Produkt wird durch Ermittlung der Child-Nodes price und quantity des aktuellen Objekts in der Variablen \$item und durch Multiplikation dieser beiden Werte miteinander berechnet. Die so berechneten Produkte bilden die Mitglieder der Sequenz, die anschließend addiert wird, um den Gesamtpreis zu generieren.

 

Erstellen einer Formel

Um eine Formel zu erstellen, gehen Sie folgendermaßen vor:

 

1.Wählen Sie den gewünschten Node, zu dem Sie die Formel hinzufügen möchten, entweder als gleichrangigen Node oder als Child-Node aus. Klicken Sie mit der rechten Maustaste darauf und fügen Sie den gleichrangigen Node bzw. den Child-Node hinzu. Beachten Sie bei der Entscheidung, wo die Formel angezeigt werden soll (als gleichrangiger Node oder als Child-Node), dass der Kontext-Node des XQuery-Ausdrucks der Formel den Parent-Node der Formel bildet. So ist z.B. der Kontext-Node im XQuery-Ausdruck in der Abbildung oben der Parent Node der Formel (totalPrice) und ihres gleichrangigen Node, nämlich des Array items. Um die Formel in der Abbildung oben zu erstellen, wurde an das items-Array ein gleichrangiger Node angehängt (siehe Abbildung unten).

2.Ändern Sie den Typ des Node in "Formel" (siehe Abbildung unten).

JSONGridViewFormulas02AddNode

3.Doppelklicken Sie in die Zelle, die das Symbol f(x) enthält, und geben Sie den Namen der Formel ein (siehe Abbildung unten). Wenn es sich beim Dokument um ein JSON5- oder JSONC-Dokument handelt, wird ein Diskettensymbol angezeigt. Sie können auf dieses Symbol klicken, um die Ausgabe der Formel im Dokument zu speichern.

JSONGridViewFormulas03NameNode

4.Standardmäßig ist der XQuery-Ausdruck der String 'XQuery', d.h. die Ausgabe ist der String XQuery (wird in der Zelle unterhalb des Ausdrucks angezeigt). Durch Doppelklick auf die Zelle des Ausdrucks, Eingabe des gewünschten Ausdruck und Drücken der Eingabetaste können Sie Ihren Ausdruck definieren. Dadurch wird die Formel ausgewertet und ihr Ergebnis wird angezeigt. Anderen Formeln werden nicht geändert.

5.Wenn das Dokument mehrere Formeln enthält, klicken Sie auf dem Menübefehl JSON | Alle erneut auswerten, um die Ergebnisse aller Formeln zu aktualisieren. Dieser Befehl ist vor allem dann hilfreich, wenn mit Formeln im Dokument Daten nachgeschlagen werden, die sich dynamisch ändern (z.B. Wechselkurse).

 

Beachten Sie zu Formeln die folgenden Punkte:

 

Der Kontext-Node des XQuery-Ausdrucks der Formel ist der Parent-Node des Formel-Node.

Formeln werden in den Metadaten des Dokuments (in einer speziellen applikationsweiten JSON-Metadatendatei) gespeichert. Wenn es sich beim Dokument um ein JSON5- oder JSONC-Dokument handelt, wird die Formel zusätzlich dazu als Kommentar im JSON-Inhalt gespeichert.

Die Ausgabe einer Formel wird in der Zelle unterhalb des XQuery-Ausdrucks der Formel angezeigt. Bei JSON5- und JSONC kann die Ausgabe durch Klick auf das Diskettensymbol neben dem XQuery-Ausdruck im Dokument gespeichert werden. Unabhängig davon, ob Sie auf das Diskettensymbol klicken oder nicht, wird die Ausgabe der Formel berechnet und in den Metadaten das Dokuments gespeichert.

ic_jsongridFormulaOutputNotSaved

Formelausgabe wird nicht im JSON-Inhalt gespeichert; Zum Speichern anklicken. Nur in  JSON5 und JSONC.

ic_jsongridFormulaOutputSaved

Formelausgabe wird im JSON-Inhalt gespeichert. Um diesen nicht zu speichern, klicken Sie auf das Symbol. Nur in  JSON5 und JSONC.

Wenn es sich bei der Ausgabe um eine Berechnung handelt, die im Inhalt gespeichert wird, wird diese unter dem Namen, den Sie der Formel zugewiesen haben, als Eigenschaft gespeichert. So wird die Ausgabe etwa in der oben beschriebenen Formel totalPrice folgendermaßen gespeichert: "totalPrice": 28.

Beachten Sie diesen Unterschied: In JSON5- und JSONC-Dokumenten werden Formeln als JSON-Kommentare gespeichert. Deren Ausgabe wird in Form von JSON-Eigenschaften gespeichert.

 

Anmerkung:Über die Einstellungen der JSON-Grid-Ansicht können Sie festlegen, ob Formeln in JSON5- und JSONC-Dokumenten gespeichert werden sollen oder nicht. Standardmäßig ist die Option zum Speichern von Formeln aktiviert.

 

Anmerkung:Über das Dialogfeld Einstellungen für Grid-Ansicht können Sie (i) Metadaten-Optionen festlegen (ob Formeln automatisch, nur auf eine Aufforderung hin oder nie gespeichert werden sollen).

 

Formeln in Tabellen

Wenn alle Zellen einer Tabellenspalte (in der Tabellenansicht) dieselbe Formel enthalten, so wird die Formel nur einmal angezeigt, und zwar in der Spaltenüberschrift (siehe Abbildung unten). Die Berechnungsergebnisse der Formel werden jedoch in den jeweiligen Zellen angezeigt.

 

Die Formel in der Spaltenüberschrift ist eine Darstellung in der Grid-Ansicht. Im Inhalt des JSON-Dokuments (in der Textansicht) wird die Formel für jedes Tabellenzeilenelement wiederholt.

JSONGridViewFormulasInTables01

Alle Formeln erneut auswerten

Um die Ergebnisse aller Formeln im Dokument zu aktualisieren, klicken Sie auf den Menübefehl JSON | Alle erneut auswerten.

 

Vorgangsweise für häufig verwendete Aktionen

 

So fügen Sie zur Tabelle eine neue leere Spalte hinzu: Wechseln Sie von der Listenanzeige in die Tabellenansicht. Klicken Sie mit der rechten Maustaste auf ein beliebiges Schlüssel:Wert-Paar in der Listenanzeige und fügen Sie über das Kontextmenü des Elements mittels Einfügen oder Anhängen ein neues Schlüssel:Wert-Paar hinzu. Wenn Sie in die Tabellenansicht zurückwechseln, wird für das neu angehängte/eingefügte Schlüssel:Wert-Paar eine neue Spalte erstellt. Sie können diese Spalte nun in der Grid-Ansicht bearbeiten.

Wenn alle Formeln einer Tabellenspalte identisch sind, sodass die Formel in der Überschrift angezeigt wird und Sie für eine einzelne Zelle eine andere Formel erstellen möchten, wechseln Sie in die Listenanzeige und bearbeiten Sie die Formel dieser Zelle. Wenn Sie in die Tabellenansicht zurückwechseln, werden die Formeln (für alle Zellen) in den einzelnen Zellen angezeigt.

Um in einem Ausdruck eine neue Zeile hinzuzufügen, drücken Sie Strg+Eingabetaste.

 

© 2017-2023 Altova GmbH