Skip to content

JQ()

The JQ() function is used to parse and transform JSON data based on jq expressions.

Function description

The JQ() function is used to parse and transform JSON data based on jq expressions. Different from TRY_JQ(), TRY_JQ() supports returning null value when an error occurs, while JQ() directly throws an exception when encountering an error.

Grammar structure

select jq(jsonDoc, pathExpression);

Parameter explanation

Parameters Description
jsonDoc This is a column or expression containing JSON data.
pathExpression Used to specify how to extract fields from JSON data

Example

mysql> select jq('{"foo": 128}', '.foo');
+------------------------+
| jq({"foo": 128}, .foo) |
+------------------------+
| 128                    |
+------------------------+
1 row in set (0.01 sec)

mysql> select jq(null, '.foo');
+----------------+
| jq(null, .foo) |
+----------------+
| NULL           |
+----------------+
1 row in set (0.00 sec)

mysql> select jq('{"id": "sample", "10": {"b": 42}}', '{(.id): .["10"].b}');
+-----------------------------------------------------------+
| jq({"id": "sample", "10": {"b": 42}}, {(.id): .["10"].b}) |
+-----------------------------------------------------------+
| {"sample":42}                                             |
+-----------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select jq('[1, 2, 3]', '.foo & .bar');
ERROR 1105 (HY000): unexpected token "&"