Json 提取为空 - Presto SQL

Json extract coming as null - Presto SQL

我正在尝试使用 json 提取来使用以下代码获取一些值:

json_extract_scalar(properties,'$.partner_target_app_id') as partner_target_app_id,

它有效,但是所有值都为 NULL 。当我提取属性字段时,我得到了我想要的值,如下例所示: {"allow_url":false,"partner_target_app_id":[28479748204829001,9388018374784],"link":"http"}

有人知道这可能是什么问题吗?我认为这与数字周围的 [] 有关,但我也尝试使用 '$.[partner_target_app_id]') 并且也得到了相同的结果。

谢谢

json_extract_scalar 用于提取标量值(数字、字符串、布尔值)。在您的示例中,与 partner_target_app_id 关联的值是一个数组。

您可以使用 json_extract,在这种情况下,returns 类型 JSON 的值包含 JSON 数字数组,并将其转换为 SQL数组:

SELECT cast(json_extract(x, '$.partner_target_app_id') as array(bigint)) 
FROM (
    VALUES '{"allow_url":false,"partner_target_app_id":[28479748204829001,9388018374784],"link":"http"}') t(x);
               _col0
------------------------------------
 [28479748204829001, 9388018374784]
(1 row)