JSON
PostgreSQL
JSONB_EXTRACT_PATH
Mengekstrak nilai dari nested JSON menggunakan path. EXTRACT_PATH mengembalikan jsonb, EXTRACT_PATH_TEXT mengembalikan text. Equivalent dengan operator #> dan #>>.
Tipe hasil:
jsonb / textSyntax
SQL
JSONB_EXTRACT_PATH(jsonb_data, VARIADIC path_elements text[])
JSONB_EXTRACT_PATH_TEXT(jsonb_data, VARIADIC path_elements text[])Parameter
jsonb_datajsonbwajib
Data JSON sumber
path_elementstext[]wajib
Path ke nilai yang diinginkan
Contoh Penggunaan
Ekstrak Nested Value
SQL
1 SELECT JSONB_EXTRACT_PATH( 2 {"user": {"name": "John", "address": {"city": "Jakarta"}}}::jsonb, 3 user, address, city 4 );
Mengekstrak nilai city dari nested object.
Hasil
| jsonb_extract_path |
|---|
| "Jakarta" |
Sebagai Text
SQL
1 SELECT JSONB_EXTRACT_PATH_TEXT( 2 {"user": {"name": "John"}}::jsonb, 3 user, name 4 ) AS user_name;
EXTRACT_PATH_TEXT mengembalikan text tanpa quotes.
Hasil
| user_name |
|---|
| John |
Equivalent Operator
SQL
1 -- Kedua query ini equivalent 2 SELECT data #> {user,name} FROM users; 3 SELECT JSONB_EXTRACT_PATH(data, user, name) FROM users;
Operator #> adalah shorthand untuk JSONB_EXTRACT_PATH.