全部产品
Search
文档中心

云原生大数据计算服务 MaxCompute:JSON函数

更新时间:Dec 30, 2025

MaxCompute支持ARRAY、MAP、STRUCT及JSON四种复杂数据类型,本文介绍JSON类型函数及其功能。

索引

函数

功能

FROM_JSON

根据给定的JSON字符串和输出格式信息,返回ARRAY、MAP或STRUCT类型。

GET_JSON_OBJECT

在一个标准JSON字符串中,按照指定方式抽取指定的字符串。

JSON_ARRAY

生成JSON ARRAY。将一个可能为空的JSON类型对象,转换为包含这些类型的数组。

JSON_CONTAINS

判断一个JSON数据中是否包含指定的 JSON 元素。

JSON_EXISTS

查看json_path对应的JSON值是否存在。

JSON_EXPLODE

支持将JSON数组或JSON对象中的每个元素拆解(展开)成多行记录输出。

JSON_EXTRACT

按照指定的json_path,从JSON格式的字符串或JSON类型数据中提取对应的字符串或JSON数据。

JSON_FORMAT

将JSON数据转换成STRING类型,默认不自动进行美化。

JSON_INSERT

在JSON文件指定位置中插入JSON值。

JSON_LENGTH

返回指定路径下的JSON数据的长度。

JSON_OBJECT

生成JSON OBJECT,要求key和value成对出现。

JSON_PARSE

将STRING类型转成JSON类型,非JSON格式转换为字符串会报错。

JSON_PRETTY

美化JSON,增加换行及空格。

JSON_SET

替换JSON文件指定位置的值或新增对应的值。

JSON_STRIP_NULLS

从JSON对象或JSON数组中移除所有值为null的字段或元素。

JSON_TUPLE

在一个标准的JSON字符串中,按照输入的一组键抽取各个键指定的字符串。

JSON_TYPE

返回JSON数据所属的数据类型名称。

JSON_UNQUOTE

去掉JSON数据中的引号。

JSON_VALID

检查字符串是否为合法的JSON格式。

TO_JSON

将指定的复杂类型输出为JSON字符串。

适用范围

  • SDK版本要求

    • 仅支持Java SDK V0.44.0及以上版本。

    • 仅支持PyODPS V0.11.4.1及以上版本。

  • 表操作限制

    • 暂不支持对一张表新增JSON列。

    • 暂不支持Cluster表。

    • 暂不支持Delta Table类型表。

  • SQL操作限制

    • 暂不支持对JSON类型的比较操作。

    • 暂不支持对JSON类型进行ORDER BYGROUP BY或作为JOIN的key。

  • 数据精度

    • 目前JSON NUMBER的整数部分使用BIGINT类型存储,当整数部分超出BIGINT范围时会溢出。

    • 目前JSON NUMBER的小数部分使用DOUBLE类型存储,当小数部分转换为DOUBLE时会损失精度。

  • 字符限制:生成JSON类型数据所用的字符串里不支持UNICODE\u0000

  • 引擎兼容性:如果表存在其他引擎读取情况,比如Hologres等,目前不支持读取JSON数据类型。

  • Java UDF和Python UDF暂不支持JSON类型。

  • JSON数据类型可以被嵌套使用,最多支持不超过20层的嵌套。

  • 开发工具

    目前支持的开发工具包括odpscmd客户端,Studio和DataWorks,暂不支持Dataphin等外围生态。如果需要跟外部系统组合使用,请先确认后再使用。使用odpscmd客户端时需要关注以下内容:

    • 需要将客户端升级到V0.46.5及以上版本,否则无法使用DESC json_table命令且无法通过Tunnel下载JSON类型数据。

    • 需要将客户端安装路径下的conf\odps_config.ini文件中的参数use_instance_tunnel设置为false,否则查询会报错

相关文档

JSON数据类型详情请参见JSON数据类型