首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery:从json对象数组中提取选定键的值

BigQuery:从json对象数组中提取选定键的值
EN

Stack Overflow用户
提问于 2022-09-22 06:11:54
回答 1查看 79关注 0票数 0

我在bigQuery有个json

代码语言:javascript
复制
{
  "actors": {
    "stooges": [
      {
        "id": 1,
        "name": "Larry"
      },
      {
        "id": 2,
        "name": "Curly"
      },
      {
        "id": 3,
        "name": "Moe"
      }
    ]
  }
}

如何提取bigQuery中的每个bigQuery。

代码语言:javascript
复制
["Larry", "Curly", "Moe"]

下面是一些方便的bigQuery兼容语句(基于上面的json)。

代码语言:javascript
复制
-- Declaring a bigQuery variable 
DECLARE json_data JSON DEFAULT (SELECT PARSE_JSON('{ "actors": {"stooges": [{"id": 1,"name": "Larry"},{"id": 2,"name": "Curly"},{"id": 3,"name": "Moe"}]}}'));

-- Select statement. But this is no good for my use case since I don't want to specify element index ([0]) as the array size is dynamic
SELECT JSON_EXTRACT(json_data, '$.actors.stooges[0].name');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-22 06:51:18

您可以尝试并考虑以下使用JSON_EXTRACT_ARRAY()的方法,然后取消嵌套,然后使用JSON_EXTRACT_SCALAR()提取值。有关文档 JSON函数的更多细节,您可以参考这个BigQuery。

代码语言:javascript
复制
select ARRAY(
  SELECT JSON_EXTRACT_SCALAR(json_array, '$.name') from UNNEST(JSON_EXTRACT_ARRAY(json_data,"$.actors.stooges"))json_array
)extracted_names

输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73810063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档