Reputation: 471
JSON data as below
{name : Mike, job : [{name: abc, value: 123},{name: def,value: 456}]}
How to retrieve the value of name = abc and def?
EDIT:(SOLUTION) Got the solution myself thanks
WITH x AS (
SELECT parse_json('{"name" : "Mike", "job" : [{"name": "abc", "value": "123"},{"name": "def","value": "456"}]}' ) as payload_json)
select x.payload_json:name,
job.value:name::varchar as name,
job.value:value::varchar as value
from x,
lateral flatten( input => x.payload_json:job, outer => true) as job;
Upvotes: 3
Views: 1443
Reputation: 471
I got the answer myself as below
WITH x AS (
SELECT parse_json('{"name" : "Mike", "job" : [{"name": "abc", "value": "123"},{"name": "def","value": "456"}]}' ) as payload_json)
select x.payload_json:name,
job.value:name::varchar as name,
job.value:value::varchar as value
from x,
lateral flatten( input => x.payload_json:job, outer => true) as job;
Upvotes: 3