本文介绍AnalyticDB for MySQL中JSON函数的用法。

JSON _EXTRACT

json_extract(json, jsonpath)
  • 命令说明:从json中返回jsonpath指定的值。
  • 返回值类型:JSON。
  • 示例:
    select json_extract('[10, 20, [30, 40]]', '$[1]');
      +------------------------------------------------+
      |                      20                        |

JSON _ARRAY_CONTAINS

json_array_contains(json, value)
  • 命令说明:判断json中是否包含value指定的值。
  • 返回值类型:BOOLEAN。
  • 示例:
    select json_array_contains('[1, 2, 3]', 2);
      +-----------------------------------------+
      |                    1                    |

JSON_SIZE

json_size(json, jsonpath)
  • 命令说明:返回json的大小。
  • 返回值类型:BIGINT。
  • 示例:
    select json_size('{"x":{"a":1, "b": 2}}', '$.x') as result;
      +---------------------------------------------------------+
      |                            2                            |
    select json_size('{"x": {"a": 1, "b": 2}}', '$.x.a') as result; 
      +------------------------------------------------------+
      |                          0                           |

JSON_ARRAY_LENGTH

json_array_length(json)
  • 命令说明:返回json数组的长度。
  • 返回值类型:BIGINT。
  • 示例:
    select json_array_length('[1, 2, 3]')
      +-----------------------------------+
      |                 3                 |

JSON_KEYS

json_keys(json, jsonpath)
  • 命令说明:获取json在指定路径下的所有键值。
  • 返回值类型:JSON ARRAY。
  • 示例:
    select json_keys(cast('{"a": 1, "b": {"c": 30}}' as json),'$.b')
      +------------------------------------------------------------+
      |                         ["c"]                              |