Presto:JSON提取多层

问题描述 投票:0回答:1

enter image description here

我正在尝试在每项服务下提取所检查的名称和状态(其中有多个)。我已经尝试过

TRANSFORM(CAST(JSON_PARSE(json_format(json_extract(json_extract(services_data, '$.services'), '$.inspections'))) AS ARRAY<JSON>), x -> JSON_EXTRACT_SCALAR(x, '$.title')) AS inspection,

有办法吗?我检查了其他相同的问题,但是看不到这些复杂的层。

arrays json presto cross-join unnest
1个回答
0
投票

select name, "state" from example cross join unnest(cast(json_extract(record, '$.services') as array<json>)) as u(service) cross join unnest(cast(json_extract(service, '$.inspections') as array(row(name varchar, "state" varchar)))) as x(name,"state");

结果看起来像这样:

name | state ------------------------------ Accelerator Pedal | green Accelerator Pedal 2 | orange Some dummy name | navy

对我来说,就像你追求的一样。
© www.soinside.com 2019 - 2024. All rights reserved.