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

Snowflake中含数组的嵌套JSON字段查询问题求助

Snowflake中查询JSON数组字段的解决方案

你的问题在于JSONBlob2中的e和h字段是数组结构,直接通过jb:e:f无法获取值——因为数组本身不是对象,必须先访问数组内的元素,或者将数组展开后再提取字段。

解决方案1:直接访问数组第一个元素

由于你的示例中每个数组仅包含一个对象,可以直接通过索引[0]定位数组内的对象,再提取字段:

select 
    jb:e[0]:f::text f, 
    jb:h[0]:i::text i
from (
    select PARSE_JSON(JSONBlob2) jb
    from myTable
)

解决方案2:用FLATTEN展开数组(适用于数组含多个元素的场景)

如果后续数组可能包含多个对象,建议使用FLATTEN函数将数组展开为行,再关联提取字段:

select 
    e_item.value:f::text f,
    h_item.value:i::text i
from myTable,
    lateral flatten(input => PARSE_JSON(JSONBlob2):e) e_item,
    lateral flatten(input => PARSE_JSON(JSONBlob2):h) h_item

额外注意事项

你提供的JSONBlob2示例存在语法错误:两个数组字段e和h之间缺少逗号,正确的JSON格式应为:

{"e": [{"f":"321", "g":"432"}], "h": [{"i":"couch", "j":"sofa"}] }

如果原始数据存在此类语法问题,PARSE_JSON会返回NULL,导致查询无结果,需要先修正JSON格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:37:36