如何在BigQuery中将JSON格式列嵌套到另一JSON列中
BigQuery 嵌套JSON列构造解决方案
转义问题的本质是child_col为字符串类型,即使内容是合法JSON,直接参与JSON构造时会被识别为普通字符串而非嵌套JSON对象,需要先将其解析为BigQuery原生的JSON类型再参与构造。
最简实现方案
使用BigQuery原生JSON_OBJECT函数直接构造目标JSON,再按需转字符串即可:
-- 输出为字符串类型的parent_col parent_col = TO_JSON_STRING(JSON_OBJECT( "code": "parent", "child": PARSE_JSON(child_col) ))
如果允许parent_col为JSON类型,直接去掉外层TO_JSON_STRING即可。
兼容原有STRUCT写法的调整方案
如果要保留原有STRUCT的写法逻辑,仅需对child_col做JSON解析处理:
parent_col = TO_JSON_STRING(STRUCT( 'parent' AS code, PARSE_JSON(child_col) AS child ))
之前尝试失败的原因
JSON_VALUE仅支持提取JSON中的标量值(字符串、数字、布尔值等),无法提取完整JSON对象,因此返回null- 旧版本BigQuery中
JSON_QUERY/JSON_EXTRACT返回结果为字符串类型,即使提取到完整JSON内容,后续转JSON字符串时依然会被识别为普通字符串,触发转义
内容的提问来源于stack exchange,提问作者user2268997
相关产品推荐
相关产品推荐

