Freigeben über


Verwenden von JSONPath zum Transformieren von JSON-Daten in Arbeitsmappen

Mit Arbeitsmappen können Daten aus vielen Quellen abgefragt werden. Manche Endpunkte, z. B. Azure Resource Manager oder benutzerdefinierte Endpunkte, können Ergebnisse im JSON-Format zurückgeben. Wenn die vom abgefragten Endpunkt zurückgegebenen JSON-Daten in einem von Ihnen nicht gewünschten Format vorliegen, können Sie die JSONPath-Transformation verwenden, um das JSON-Format in eine Tabellenstruktur zu konvertieren. Sie können die Tabelle anschließend für Visualisierungen von Arbeitsmappen verwenden.

JSONPath ist eine Abfragesprache für JSON, die XPath für XML ähnelt. Wie XPath ermöglicht auch JSONPath das Extrahieren und Filtern von Daten aus der JSON-Struktur.

Verwenden von JSONPath

In diesem Beispiel stellt das JSON-Objekt den Bestand eines Speichers dar. Wir werden eine Tabelle mit den verfügbaren Büchern im Laden erstellen, in der wir die vorhandenen Titel, Autoren und Preise auflisten.

  1. Versetzen Sie die Arbeitsmappe in den Bearbeitungsmodus, indem Sie Bearbeiten auswählen.

  2. Fügen Sie über den Link Hinzufügen>Abfrage hinzufügen der Arbeitsmappe ein Abfragesteuerelement hinzu.

  3. Wählen Sie JSON als Datenquelle aus.

  4. Geben Sie den folgenden JSON-Codeschnipsel mithilfe des JSON-Editors ein:

    { "store": {
        "books": [ 
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
          },
          { "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }
    
  5. Wählen Sie die Registerkarte Ergebniseinstellungen aus, und ändern Sie das Ergebnisformat in JSON-Pfad.

  6. Verwenden Sie die folgenden Einstellungen für den JSON-Pfad:

    • JSON-Pfadtabelle: $.store.books. Dieses Feld stellt den Pfad des Stamms der Tabelle dar. In diesem Fall ist der Buchbestand des Ladens von Bedeutung. Der Tabellenpfad filtert den JSON-Code auf die Buchinformationen.

      Spalten-IDs JSON-Spaltenpfade
      Titel $.title
      Autor $.author
      Preis $.price

    Spalten-IDs sind die Spaltenüberschriften. Felder für den JSON-Spaltenpfad stellen den Pfad vom Stamm der Tabelle zum Spaltenwert dar.

  7. Wählen Sie Run Query (Abfrage ausführen) aus.

    Screenshot: Bearbeiten eines Abfrageelements mit JSON-Datenquelle und JSON-Pfad als Ergebnisformat.

Verwenden von regulären Ausdrücken zum Konvertieren von Werten

Möglicherweise verfügen Sie über Daten, die nicht in einem Standardformat vorliegen. Um diese Daten effektiv nutzen zu können, sollten Sie sie in ein Standardformat konvertieren.

In diesem Beispiel liegt das Veröffentlichungsdatum im Format JJJJMMDD vor. Der Code interpretiert dieses Format als numerischen Wert, nicht als Text, was zu rechtsbündig ausgerichteten Zahlen statt zu Datumswerten führt.

Sie können die Felder Typ, RegEx-Übereinstimmung und Ersetzen durch in den Ergebniseinstellungen verwenden, um das Ergebnis in korrekte Datumsangaben zu konvertieren.

Ergebniseinstellungsfeld BESCHREIBUNG
type Ermöglicht es Ihnen, den Typ des von der API zurückgegebenen Werts explizit zu ändern. Dieses Feld wird normalerweise nicht festgelegt, Sie können es aber verwenden, um die Konvertierung des Werts zu einem anderen Typ zu erzwingen.
RegEx Match Ermöglicht ihnen die Eingabe eines regulären Ausdrucks, um einen Teil (oder Teile) des von der API zurückgegebenen Werts anstatt des gesamten Werts zu übernehmen. Dieses Feld wird in der Regel mit dem Feld Ersetzen durch kombiniert.
Ersetzen durch Verwenden Sie dieses Feld, um den neuen Wert zusammen mit dem regulären Ausdruck zu erstellen. Wenn dieser Wert leer ist, gilt als Standardwert „$&“, was dem Übereinstimmungsergebnis des Ausdrucks entspricht. Weitere Werte, die Sie zum Generieren einer anderen Ausgabe verwenden können, finden Sie in der Dokumentation zur „string.replace“-Methode.

So konvertieren Sie das JJJJMMDD-Format in das Format JJJJ-MM-TT:

  1. Wählen Sie im Raster die veröffentlichte Zeile aus.

  2. Wählen Sie im Feld Typ die Option Datum/Uhrzeit aus, damit die Spalte in Diagrammen verwendet werden kann.

  3. Verwenden Sie im Feld Regex-Übereinstimmung den folgenden regulären Ausdruck: ([0-9]{4})([0-9]{2})([0-9]{2}). Dieser reguläre Ausdruck lautet:

    • entspricht einer vierstelligen Zahl, der zwei zweistellige Zahlen folgen.
    • Die Klammern der Formularerfassungsgruppen, die im nächsten Schritt verwendet werden sollen.
  4. Verwenden Sie Im Feld Ersetzen durch den folgenden regulären Ausdruck: $1-$2-$3. Dieser Ausdruck erstellt eine neue Zeichenfolge für jede erfasste Gruppe. Die einzelnen Gruppen werden durch einen Bindestrich getrennt, wodurch z. B. „12345678“ in „1234-56-78“ umgewandelt wird.

  5. Führen Sie die Abfrage erneut aus.

    Screenshot: JSONpath, konvertiert in Datums-/Uhrzeitformat

Nächste Schritte