MySQLでは、JSON_TYPE()
関数はJSON値のタイプを返します。具体的には、utf8mb4
を返します。 値のタイプを示す文字列。
JSON値を引数として指定します。
構文
構文は次のようになります:
JSON_TYPE(json_val)
ここで、json_val
タイプを返すJSON値です。これは、オブジェクト、配列、またはスカラー型にすることができます。
例1-オブジェクト
値がオブジェクトの場合の例を次に示します。
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_TYPE(@data) 'JSON Type';
結果:
+-----------+ | JSON Type | +-----------+ | OBJECT | +-----------+
例2–アレイ
これが配列の例です。
SET @data = '[1, 2, 3]'; SELECT JSON_TYPE(@data) 'JSON Type';
結果:
+-----------+ | JSON Type | +-----------+ | ARRAY | +-----------+
例3–配列からデータを抽出する
配列内の個々の要素のタイプを取得することもできます。
SET @data = '[1, 2, 3]'; SELECT JSON_EXTRACT(@data, '$[1]') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';
結果:
+------+-----------+ | Data | JSON Type | +------+-----------+ | 2 | INTEGER | +------+-----------+
例4–オブジェクトからデータを抽出する
同じことがオブジェクトのメンバーにも当てはまります。
SET @data = '{"Name": "Homer", "Stupid": "True"}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
結果:
+--------+-----------+ | Data | JSON Type | +--------+-----------+ | "True" | STRING | +--------+-----------+
その場合、値は文字列リテラル"True"
でした。 。
別の例を示しますが、今回はブール値true
を使用します 。
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
結果:
+------+-----------+ | Data | JSON Type | +------+-----------+ | true | BOOLEAN | +------+-----------+
例5–データベースクエリ
この例では、データベース列を使用しています。
SELECT Contents, JSON_TYPE(Contents) 'Contents', JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name' FROM Collections WHERE CollectionId = 4;
結果:
+--------------------------------+----------+--------+ | Contents | Contents | Name | +--------------------------------+----------+--------+ | {"Name": "Homer", "Stupid": 1} | OBJECT | STRING | +--------------------------------+----------+--------+