我正在尝试在每项服务下提取所检查的名称和状态(其中有多个)。我已经尝试过
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,
有办法吗?我检查了其他相同的问题,但是看不到这些复杂的层。
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
对我来说,就像你追求的一样。