Экстракт Json принимает значение 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]') и получил тот же результат.

Благодарность

1 ответ

<tcode id="273362"></tcode>предназначен для извлечения скалярных значений (чисел, строк, логических значений). В вашем примере значение, связанное с partner_target_app_id это массив.

Вы можете использовать <tcode id="273364"></tcode>, который в данном случае возвращает значение типа 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)
Другие вопросы по тегам