JSON_PARSE

✅ ✅ Azure Stream Analytics Fabric Eventstream

JSON_PARSE konvertiert eine JSON-formatierte Zeichenfolge in einen Datensatz, auf den Sie zugreifen und abfragen können. Verwenden Sie diese Funktion, wenn ein Ereignis ein geschachteltes JSON-Objekt enthält, das als Zeichenfolge serialisiert wird, z. B. die data Eigenschaft in einem Fabric Eventstream-Änderungsereignis.

Gründe für die Verwendung von JSON_PARSE

Viele Streamingszenarien, insbesondere Eventstream-Integrationen, enthalten Ereignisse, bei denen eine Eigenschaft ein JSON-Dokument ist, das als Zeichenfolge serialisiert ist. Während der Ereignisentialisierung werden diese geschachtelten Nutzlasten als Zeichenfolgen behandelt, sodass Sie nicht direkt auf ihre Eigenschaften als JSON-Objekte zugreifen können. Wird JSON_PARSE verwendet, um zeichenfolgencodierte JSON in einen strukturierten Datensatz zu konvertieren, auf dessen Eigenschaften Sie zugreifen und abfragen können.

Syntax

JSON_PARSE ( jsonString )

Argumente

Name Typ Beschreibung
jsonString nvarchar(max) Ein gültiges JSON-Objekt, serialisiert als Zeichenfolge.

Rückgabetyp

Gibt das analysierte JSON-Objekt als Wert des Typs recordzurück.

Fehlerbehandlung

JSON_PARSE ist eine funktion, die nicht ausgelöst wird. Wenn die Analyse nicht abgeschlossen werden kann, gibt die Funktion anstelle der fehlerhaften Abfrageausführung zurück NULL . JSON_PARSE gibt folgendes zurück NULL :

  • Der Eingabeausdruck ist kein unterstützter Zeichenfolgenwert.
  • Die angegebene Zeichenfolge ist kein gültiger JSON-Code.
  • Ein weiterer JSON-Konvertierungsfehler tritt auf.

Beispiele

In den Beispielen wird das folgende Eingabeereignis verwendet. Die old eigenschaften current enthalten JSON-Objekte, die als Zeichenfolgen serialisiert werden.

{
  "eventrow": {
    "old": "{\"SalesOrderID\":\"65191\",\"SalesOrderDetailID\":\"89090\"}",
    "current": "{\"SalesOrderID\":\"65191\",\"SalesOrderDetailID\":\"89090\",\"ProductName\":\"Touring-2000 Blue, 54\"}"
  }
}

Analysieren einer geschachtelten JSON-Zeichenfolge

Die folgende Abfrage konvertiert die JSON-Zeichenfolge in eventrow.old einen Datensatz:

SELECT
    JSON_PARSE(eventrow.old) AS ParsedOldRow
INTO Output
FROM Input

Zugreifen auf Eigenschaften in einem analysierten Datensatz

Die folgenden Abfrage analysiert eventrow.current und greift mithilfe der Punktnotation auf Eigenschaften im zurückgegebenen Datensatz zu:

WITH ParsedEvents AS
(
    SELECT JSON_PARSE(eventrow.current) AS ParsedCurrent
    FROM Input
)
SELECT
    ParsedCurrent.SalesOrderID,
    ParsedCurrent.ProductName
FROM ParsedEvents