Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Analyse)

TRY_PARSE_JSON

Eine spezielle Version von PARSE_JSON, die einen NULL-Wert zurückgibt, wenn beim Parsing ein Fehler auftritt.

Syntax

TRY_PARSE_JSON( <expr> [ , '<parameter>' ] )
Copy

Argumente

Benötigt:

expr

Ein Ausdruck vom Typ Zeichenfolge (z. B. VARCHAR), der gültige JSON-Informationen enthält.

Optional:

'parameter'

Zeichenfolgenkonstante, die den Parameter angibt, der für die Suche nach Übereinstimmungen verwendet wird. Unterstützte Werte:

Parameter

Beschreibung

d

Doppelte Schlüssel in JSON-Objekten erlauben. Wenn ein JSON-Objekt einen doppelten Schlüssel enthält, enthält das zurückgegebene Objekt eine einzelne Instanz dieses Schlüssels mit dem letzten für diesen Schlüssel angegebenen Wert.

s

Keine doppelten Schlüssel in JSON-Objekten erlauben (streng). Dieser Wert ist der Standardwert.

Rückgabewerte

Gibt einen Wert vom Typ VARIANT zurück, der ein JSON-Dokument enthält.

Wenn die Eingabe NULL ist oder wenn ein Fehler beim Analysieren auftritt, gibt die Funktion NULL zurück.

Diese Funktion gibt keinen strukturierten Typ zurück.

Nutzungshinweise

Nutzungshinweise finden Sie unter PARSE_JSON.

Beispiele

Hier ein Beispiel für das Speichern verschiedener Datentypen in einer VARIANT-Spalte, indem Sie TRY_PARSE_JSON aufrufen, um Zeichenfolgen zu analysieren, die Werte enthalten, die als JSON analysiert werden können:

Erstellen Sie eine Tabelle, und befüllen Sie diese.

CREATE OR REPLACE TEMPORARY TABLE vartab (ID INTEGER, v VARCHAR);

INSERT INTO vartab (id, v) VALUES
  (1, '[-1, 12, 289, 2188, FALSE,]'),
  (2, '{ "x" : "abc", "y" : FALSE, "z": 10} '),
  (3, '{ "bad" : "json", "missing" : TRUE, "close_brace": 10 ');
Copy

Fragen Sie die Daten mit TRY_PARSE_JSON ab. Beachten Sie, dass der Wert für die dritte Zeile NULL ist. Wenn die Abfrage PARSE_JSON und nicht TRY_PARSE_JSON verwenden würde, würde sie fehlschlagen.

SELECT ID, TRY_PARSE_JSON(v)
  FROM vartab
  ORDER BY ID;
Copy
+----+-------------------+
| ID | TRY_PARSE_JSON(V) |
|----+-------------------|
|  1 | [                 |
|    |   -1,             |
|    |   12,             |
|    |   289,            |
|    |   2188,           |
|    |   false,          |
|    |   undefined       |
|    | ]                 |
|  2 | {                 |
|    |   "x": "abc",     |
|    |   "y": false,     |
|    |   "z": 10         |
|    | }                 |
|  3 | NULL              |
+----+-------------------+

Weitere Beispiele finden Sie unter PARSE_JSON.