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

Athena/Presto展开序列化JSON对象列表报错,需转为结构化表格

Athena/Presto 序列化JSON对象解析问题解决

问题原因

你的数据里的JSON对象是被双引号包裹的字符串形式的JSON数组,执行JSON_PARSE后得到的是STRING类型值,而非原生JSON数组。直接尝试将其转为ARRAY<JSON>会触发类型转换错误,因为Athena/Presto无法把字符串直接识别为JSON数组。

解决方案

需要先将这个字符串形式的JSON数组重新解析为真正的JSON数组,再展开提取字段:

WITH input AS (
    SELECT JSON_PARSE('"[{"is_flag": 0, "url": "https://app.com/123"},{"is_flag": 1, "url": "https://app.com/456"}]"') AS json_obj
)
SELECT 
    CAST(JSON_EXTRACT(y, '$.is_flag') AS INTEGER) AS is_flag,
    JSON_EXTRACT_SCALAR(y, '$.url') AS url
FROM input
-- 先将字符串解析为JSON数组,再转为ARRAY<JSON>后展开
CROSS JOIN UNNEST(CAST(JSON_PARSE(json_obj) AS ARRAY<JSON>)) AS u(y)

执行结果

执行上述SQL后,会得到你期望的结构化表格:

is_flagurl
0https://app.com/123
1https://app.com/456

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:50:13