JSON_EXTRACT_<type>

This is a set of three JSON functions, which returns the value of a given key in a JSON map or an element in a JSON array. Maps are in the form:

{"a": 1, "b": 2, "c": 3}
  • JSON_EXTRACT_DOUBLE is for all numeric data. Javascript has only one numeric type.
  • JSON_EXTRACT_STRING is for all text and binary types.
  • JSON_EXTRACT_JSON is for all valid Javascript types, including true, false, JSON maps, and lists.

    JSON_EXTRACT_<type>(json, keypath)
    

    Arguments

  • json: a valid JSON map, or the name of a JSON column.

  • keypath: The path to the key to extract (comma-separated list of dictionary keys or zero-indexed array positions).

Return Value

  • The extracted element.
  • SQL NULL if json is not a valid JSON array, or if keyname does not exist.

Examples

mysql> select json_extract_double('{"a":1, "b":2, "c": [3,4,5]}', 'b') as get_b;
+-------+
| get_b |
+-------+
|     2 |
+-------+

mysql> select json_extract_json('{"a":1, "b":2, "c": [3,4,5]}', 'c') as get_c;
+---------+
| get_c   |
+---------+
| [3,4,5] |
+---------+

mysql> select json_extract_json('{"a":1, "b":2, "c": [3,4,5]}', 'c', 1) as get_c;
+-------+
| get_c |
+-------+
| 4     |
+-------+

mysql> select json_extract_json('{"a":1, "b":2, "c": [3,4,5]}', 'z') as get_z;
+-------+
| get_z |
+-------+
| NULL  |
+-------+
Was this article useful?