您可以使用BigQuery的内置函数和表达式来将以字符串形式存储的JSON动态转换为结构体。下面是一个代码示例:
WITH data AS (
SELECT '{"name": "John", "age": 30, "city": "New York"}' AS json_string
)
SELECT
JSON_EXTRACT_SCALAR(json, '$.name') AS name,
JSON_EXTRACT_SCALAR(json, '$.age') AS age,
JSON_EXTRACT_SCALAR(json, '$.city') AS city
FROM data, UNNEST([STRUCT(JSON(json_string) AS json)])
在这个示例中,我们有一个包含一个以字符串形式存储的JSON的临时表"data"。我们使用JSON_EXTRACT_SCALAR函数来提取JSON中的每个属性,并将其作为结构体的字段进行选择。
请注意,使用UNNEST和STRUCT函数将JSON字符串转换为结构体是关键。UNNEST函数用于将数据行展开为多行,STRUCT函数用于创建结构体。
您可以根据您的实际需求调整JSON_EXTRACT_SCALAR的参数,以提取不同的属性。
希望这个示例能够帮助您解决您的问题!