Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: JSON-Einlesen Variante 3 hinzugefügt

...

In der Step-Konfiguration sieht das ganze so aus:


JSON-Einlesen Variante 3

Eine weitere Form von JSON-Struktur ist ein sog. JSON-Object bestehend aus Key-Value-Paaren. D.h. im Gegensatz zum JSON-Array oben, besteht die Struktur nicht aus einer Liste, sondern direkt aus Schlüssel-Wert-Paaren. Folgendes Beispiel zeigt, wie man über diese Paare iteriert und Key und Value ausgibt. Dabei wird Variante 1 (addColumns()) und 2 (addCol()) kombiniert.


Code Block
{
    "12345": {
        "id": 140937,
        "folderId": "18",
        "contactId": "0",
        "firstName": "redacted",
        "lastName": "redacted",
        "email": "redacted",
        "gender": null,
        "birthday": "0000-00-00",
        "timestamp": "2021-08-07 17:43:27",
        "templateLang": "de",
        "confirmedTimestamp": "2021-08-07 17:44:09",
        "confirmationURL": null
    },
    "67890": {
        "id": 140938,
        "folderId": "18",
        "contactId": "0",
        "firstName": "redacted",
        "lastName": "redacted",
        "email": "redacted",
        "gender": null,
        "birthday": "0000-00-00",
        "timestamp": "2021-08-09 20:24:18",
        "templateLang": "de",
        "confirmedTimestamp": "0000-00-00 00:00:00",
        "confirmationURL": null
    }
}


parsingCode für JSON Reader:

Code Block
<#assign row = target.addRow()>

<#list json as key, value>
  <#assign row = target.addRow()>
  ${row.addCol("customerid", key)}
  ${addColumns(row, value, "data_")}
</#list>


Ergebnis:

Image Added

Mit <#list json as key, value> kann man über die einzelnen Key-Value-Paare dieser Map iterieren und auf den Key und den Value zugreifen. 
Dies ist die Freemarker-Schreibweise für Key-Value-Paare einer Map / Hash.

JSON-Parsing im Detail

Die Logik verhält sich analog zum Einlesen von XML-Dateien, die hier beschrieben ist.

...