...
SELECT
users.id AS user_id,
jsonb_extract_path_text (users.jsonb, 'personal', 'lastName') AS requestor_last_name,
jsonb_extract_path_text (users.jsonb, 'personal', 'firstName') AS requestor_first_name
FROM
folio_users.users
...
The following expression will also get "lastName" and "firstName":
SELECT
users.id AS user_id,
users.jsonb #>> '{personal, lastName}' AS requestor_last_name,
users.jsonb #>> '{personal, firstName}' AS requestor_first_name
FROM
folio_users.users
Extracting "Third level" Data Fields
...
SELECT
audit_loan.id AS audit_loan_id,
jsonb_extract_path_text (audit_loan.jsonb, 'loan', 'status', 'name') AS loan_status__name,
jsonb_extract_path_text (audit_loan.jsonb, 'loan', 'metadata', 'updatedByUserId') AS loan_updated_by_user_id
FROM
folio_circulation.audit_loan
The following expression will also get the third-level values:
SELECT
audit_loan.id AS audit_loan_id,
audit_loan.jsonb #>> '{loan, status, name}' AS loan_status__name,
audit_loan.jsonb #>> '{loan, metadata, updatedByUserId}' AS loan_updated_by_user_id
FROM
folio_circulation.audit_loan
...