select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

FUNCTIONS / JSON FUNCTIONS AND OPERATORS

jsonb_to_record

Read PG 18 manual ↗

Expands the top-level JSON object to a row having the composite type defined by an AS clause.

Signatures & examples

jsonb_to_record ( jsonb ) → record
Expands the top-level JSON object to a row having the composite type defined by an AS clause. (As with all functions returning record, the calling query must explicitly define the structure of the record with an AS clause.) The output record is filled from fields of the JSON object, in the same way as described above for json[b]_populate_record. Since there is no input record value, unmatched columns are always filled with nulls.
select * from json_to_record('{"a":1,"b":[1,2,3],"c":[1,2,3],"e":"bar","r": {"a": 123, "b": "a b c"}}') as x(a int, b text, c int[], d text, r myrowtype) →  a |    b    |    c    | d |       r
---+---------+---------+---+---------------
 1 | [1,2,3] | {1,2,3} |   | (123,"a b c")
Version history 2
  1. PG 12 → 13changed
  2. PG 9.3 → 9.4added

Definition snapshot: 2026-09-14T13:14:25.684213+00:00@99e6866c · English manual source