- カテゴリ:
半構造化データ関数と構造化データ関数 (解析)
TRY_PARSE_JSON¶
解析中にエラーが発生した場合に NULL 値を返す PARSE_JSON の特別なバージョンです。
構文¶
TRY_PARSE_JSON( <expr> [ , '<parameter>' ] ) 引数¶
必須:
expr有効な JSON 情報を保持する文字列型の式(例: VARCHAR)。
オプション:
'parameter'検索に使用するパラメーターを指定する文字列定数。サポートされている値:
パラメーター
説明
dJSON オブジェクトでキーの重複を許可します。JSON オブジェクトに重複キーが含まれる場合、返されるオブジェクトには、そのキーに指定された最後の値を持つ、そのキーのインスタンスが1つ含まれます。
sJSON オブジェクトでキーの重複を許可しません(厳密)。この値がデフォルトです。
戻り値¶
JSON ドキュメントを含む型 VARIANT の値を返します。
入力が NULL の場合、または解析中にエラーが発生した場合、関数は NULL を返します。
この関数は 構造化型 を返しません。
使用上の注意¶
使用上の注意については、 PARSE_JSON をご参照ください。
例¶
これは、 TRY_PARSE_JSON を呼び出して JSON として解析できる値を含む文字列を解析することにより、 VARIANT 列にさまざまな型のデータを保存する例を示しています。
テーブルを作成して入力します。
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 '); TRY_PARSE_JSON を使用して、データをクエリします。3行目の値は NULLになります。このクエリが TRY_PARSE_JSON ではなく PARSE_JSON を使用した場合、失敗します。
SELECT ID, TRY_PARSE_JSON(v) FROM vartab ORDER BY ID; +----+-------------------+ | ID | TRY_PARSE_JSON(V) | |----+-------------------| | 1 | [ | | | -1, | | | 12, | | | 289, | | | 2188, | | | false, | | | undefined | | | ] | | 2 | { | | | "x": "abc", | | | "y": false, | | | "z": 10 | | | } | | 3 | NULL | +----+-------------------+ その他の例については、 PARSE_JSON をご参照ください。