メインコンテンツまでスキップ
バージョン: 2.1

GET_JSON_INT

説明

この関数は、JSONドキュメントからフィールドの値を抽出し、INT型に変換するために使用されます。この関数は、指定されたパス上のフィールドの値を返すか、値をINT型に変換できない場合またはパスで指定されたフィールドが存在しない場合はNULLを返します。

構文

GET_JSON_INT( <json_str>, <json_path>)

必須パラメータ

parametersdescribed
<json_str>データを抽出するJSONストリングが必要です。
<json_path>JSONパス、フィールドの位置を指定します。パスはドット記法で表記できます。

使用上の注意

jsonストリング内の指定されたパスの整数コンテンツを解析し、取得します。 <json_path>は$記号で開始し、.をパス区切り文字として使用する必要があります。パスに.が含まれる場合は、ダブルクォートで囲むことができます。 [ ]を使用して配列インデックスを表現し、0から開始します。 パスのコンテンツは"、[、]を含むことはできません。 <json_str>形式が正しくない場合、<json_path>形式が正しくない場合、またはマッチが見つからない場合はNULLを返します。 また、同じ機能を実現するためにjsonbタイプとjsonb_extract_XXX関数の使用を推奨します。 特殊な状況は以下のように処理されます:

  • JSON内に指定されたフィールドが存在しない場合、<json_path>はNULLを返します
  • JSON内の<json_path>で指定されたフィールドの実際のタイプがjson_extract_tで指定されたタイプと一致しない場合、指定されたタイプに無損失で変換できれば指定されたタイプtが返され、変換できない場合はNULLが返されます。

  1. キーが"k1"の値を取得する
SELECT get_json_int('{"k1":1, "k2":"2"}', "$.k1");

+--------------------------------------------+
| get_json_int('{"k1":1, "k2":"2"}', '$.k1') |
+--------------------------------------------+
| 1 |
+--------------------------------------------+
  1. キー"my.key"を持つ配列の2番目の要素を取得します
SELECT get_json_int('{"k1":"v1", "my.key":[1, 2, 3]}', '$."my.key"[1]');
+------------------------------------------------------------------+
| get_json_int('{"k1":"v1", "my.key":[1, 2, 3]}', '$."my.key"[1]') |
+------------------------------------------------------------------+
| 2 |
+------------------------------------------------------------------+

3. Gets the first element in an array with secondary path k1.key -> k2

```sql
SELECT get_json_int('{"k1.key":{"k2":[1, 2]}}', '$."k1.key".k2[0]');

+--------------------------------------------------------------+
| get_json_int('{"k1.key":{"k2":[1, 2]}}', '$."k1.key".k2[0]') |
+--------------------------------------------------------------+
| 1 |
+--------------------------------------------------------------+