You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Athena(Trino SQL)如何用点标记法解析带引号的JSON字段?

原因说明

你遇到的报错是因为Athena(Trino)的点标记法仅支持STRUCT/ROW类型的字段访问,仅当表结构中显式定义了对应层级的ROW结构时才能正常使用。当JSON字段的键带双引号时,Athena不会将该层级识别为ROW类型,因此点标记法失效。

无需修改JSON和表结构的解决方案

直接使用Athena内置的JSON解析函数即可,兼容性更强,不受键是否带引号的影响:

方案1:提取标量值(字符串、数字、布尔值等)

使用JSON_EXTRACT_SCALAR函数,直接返回对应字段的原始值:

SELECT JSON_EXTRACT_SCALAR(document1, '$.a.text') AS value1
FROM your_table_name;

方案2:提取JSON对象/数组

如果需要返回JSON结构而非纯标量值,使用JSON_EXTRACT函数:

SELECT JSON_EXTRACT(document1, '$.a') AS a_object
FROM your_table_name;

适用场景说明

上述两个函数对document1为JSON类型、或STRING类型存储的JSON文本均生效,无需调整原有表结构和JSON数据格式。


内容的提问来源于stack exchange,提问作者JosephDoggie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:00:05