Ausgabeformat "Json"
Dieses Ausgabeformat generiert aus den Indexdaten des Dokumentes eine JSON-Datei. Die Dateianlagen des Dokumentes können eingebettet werden oder Referenzen auf extern mitzuführende Dateianlagen können generiert werden.
Hinweis
Die Eigenschaften für die Ausgabewerte, die in der JSON-Datei zu erstellen sind, müssen hier in einer proprietären Syntax definiert werden (siehe JSONPath-Syntax). Diese Syntax ist an die JSONPath-Syntax (siehe JSON-Indexdatenleser) angelehnt und wird deshalb nachfolgend auch so genannt. Funktional ist diese Syntax aber auf die hier vorliegenden Belange der JSON-Ausgabeformaterstellung reduziert, während JSONPath eigentlich eine Syntax zum Einlesen bestehender JSON-Daten darstellt.
Eigenschaft | Beschreibung |
|---|---|
OutputFormat[].AttachFileMode | Modus, wie zusätzliche Dateianlagen zu der JSON-Datei hinzugefügt werden:
Die physische Bereitstellung der Dateien im Dateisystem, die im Modus |
OutputFormat[].ItemProperty[](*) | Teilparameter zur Definition einer JSON-Eigenschaft zur Aufnahme tabellarischer Daten Wenn Positionsdaten oder andere Tabellendaten ausgegeben werden, ist diese Eigenschaft zwingend zu konfigurieren. Die Eigenschaft muss ein JSON-Element vom Typ "Array" darstellen.
Die Eigenschaft Der Pfad auf die zu generierende Zieleigenschaft ist in den Feldzuordnungen unter |
OutputFormat[].AttachFileProperty(*) | Definition einer JSON-Eigenschaft in JSONPath-Syntax, unter der die Referenz auf Dateianlagen oder die Binärdaten von Dateianlagen ausgegeben werden Diese Definition wird in den Modi
Zur Ausgabe mehrerer Dateianlagen muss der Pfad, der im Parameter Zur Ausgabe einer einzelnen Dateianlage kann in |
OutputFormat[].AttachFileRefMacro | optionaler Makroausdruck zur Aufbereitung des Dateireferenz-Wertes im Modus Der Standardwert ist mit dem Ausdruck |
JSONPath-Syntax
Bei den Eigenschaften dieses Ausgabeformats kommt eine eingeschränkte Variante der JSONPath-Syntax zum Einsatz. Diese Syntax besteht aus einer Pfadangabe, die sich aus den per Punkt getrennten Eigenschaftsnamen geschachtelter Objekte zusammensetzt. Die unterste Eigenschaft im Pfad nimmt den elementaren Zielwert auf. Die übergeordnete Eigenschaften stellen standardmäßig jeweils ein Objekt dar.
Wenn eine Eigenschaft ein Array darstellen soll, muss dieses durch eckige Klammern hinter dem Eigenschaftsnamen kenntlich gemacht werden. Das ist beispielsweise für die obigen Konfigurationseigenschaften .ItemProperty[] und .AttachFileProperty der Fall, d.h. für Tabellenzeilen und Dateianlagen.
Andere Werte können bei Bedarf auch in ein Array ausgegeben werden. Dann kann zusätzlich das betreffende Array-Element spezifiziert werden. Ein numerischer Wert in den eckigen Klammern gibt eine konkrete Elementnummer vor. Die Zählung beginnt hierbei bei 1. Ein Suchschlüssel {Name}={Wert} definiert eine Suche nach einem Array-Element vom Typ "Objekt", das eine Eigenschaft mit dem angegebenen Namen und Wert enthält. Array-Elemente, die noch nicht vorhanden sind, werden automatisch neu angelegt, wobei ggf. auch die Eigenschaft für den Suchschlüssel gesetzt wird. Als dessen Wert wird nur der Typ "String" unterstützt. Wenn weder Elementnummer noch Suchschlüssel vorgegeben ist, wird immer das erste Array-Element referenziert und nur dann neu angelegt, wenn das Array noch leer ist.
Die folgenden Beispiele zeigen für verschiedene JSONPath-Ausdrücke, welche JSON-Elemente daraus resultieren:
Proprietärer JSONPath-Ausdruck | Generiertes JSON-Fragment |
|---|---|
| {
"Doc": {
"InvoiceNumber": …,
"InvoiceDate": …
}
} |
| {
"Fields": [
…,
…
]
} |
| {
"Fields": [
{
"Value": …
},{
"Value": …
}
]
} |
| {
"Fields": [
{
"Name": "InvoiceNumber",
"Value": …
},{
"Name": "InvoiceDate",
"Value": …
}
]
} |
Der folgende Auszug verdeutlicht die Nutzung der JSONPath-Syntax im Kontext einer konkreten Ausgabeformat-Konfiguration:
{
"OutputFormat": [
{
"ItemProperty": [
"ItemProp: Document.Items[]"
],
"AttachFileProperty": "File: Document.Files[], Data: Reference, Name: Name"
"Field": [
{
"Name": "Field1",
"OutputName": "Document.Fields[Name=Field1].Value"
},{
"Name": "Items.Field1",
"OutputName": "Fields[Name=ItemsField1].Value"
}
]
}
]
}Aus dieser Konfiguration werden die folgenden JSON-Daten generiert:
{
"Document": {
"Fields": [
{
"Name": "Field1",
"Value": …
}
],
"Items": [
{
"Fields": [
{
"Name": "ItemsField1",
"Value": …
}
]
}
],
"Files": [
{
"Reference": "…",
"Name": "…"
}
]
}
}