繁体   English   中英

从 BigQuery 上的字符串字段获取结构化值

[英]Get a structured value from string field on BigQuery

我在 BigQuery 上有一个字符串字段,如下所示:

[{"value": "yes", "source": "CURATED", "curated": true}, {"value": "yes", "source": "listing_service", "curated": false}]

如果我只想知道在本例中为yes的值参数,我该如何查询该字段?

考虑以下方法

select 
  json_value(entry, '$.value') as value,
  json_value(entry, '$.source') as source,
  json_value(entry, '$.curated') as curated
from your_table, unnest(json_extract_array(field_name)) entry      

如果应用于您问题中的样本数据 - output 是

在此处输入图像描述

同时,我通过 function JSON_EXTRACT_SCALAR找到了解决方案。确切的示例可以这样查询。

JSON_EXTRACT_SCALAR(field_name,"$[0].value")

为了补充您的答案, JSON_Extract_SCALAR是提取数据的好方法,但它被认为是遗留问题,如JSON 函数文档页面所示。 我建议改用JSON_VALUE

select JSON_VALUE('[{"name":"juliana","country":"peru"}]',"$[0].name") as name

output

name 
-------
juliana

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM