Want to export PostgreSQL data to JSON Lines (JSONL) file via Command Line Interface (CLI) on MacOS?
Using pg-cmd, Command Line Interface (CLI) client for PostgreSQL, you can unload PostgreSQL data to JSON easily and fast. Direct Interaction or Scripting and Automation.
- No need to install PostgreSQL client library.
- Convenient to deploy to cloud. No need to run installation file, just uncompress and run, immediately.
- Commands are entered into a terminal or command prompt, accessed from local or remote (like SSH).
- Support Windows, Linux, and MacOS.
Download pg-cmd Macos version
pg-cmd.darwin-amd64.zip
pg-cmd.darwin-arm64.zip
JSON Lines text format, also called newline-delimited JSON (NDJSON), or Line-delimited JSON (LDJSON). JSON Lines files may be saved with the file extension .jsonl, *.ndjson, *.ldjson.
Export PostgreSQL data to JSON via command line on MacOS
1. Unload Table.
1) In interactive mode:
pg-cmd> unload table=jobs datafile=e:\temp\tables\jobs.json filetype=json;
2) In batch mode:
pg-cmd dsn="pan:withdata@192.168.0.102/test" task=unload table=jobs datafile=e:\temp\tables\jobs.json filetype=json quit=y
2. Unload Query.
1) In interactive mode:
pg-cmd> unload query="select job_id,job_title from jobs"
> datafile=e:\temp\tables\jobs_part.json
> filetype=json;
2) In batch mode:
pg-cmd dsn="pan:withdata@192.168.0.102/test" task=unload query="select job_id,job_title from jobs" datafile=e:\temp\tables\jobs_part.json filetype=json quit=y
3. Unload All Tables.
1) In interactive mode:
pg-cmd> unload table=all folder=e:\temp\tables filetype=json;
2) In batch mode:
pg-cmd dsn="pan:withdata@192.168.0.102/test" task=unload table=all folder=e:\temp\tables filetype=json quit=y
See parameters detail.
More about pg-cmd – Command Line Interface (CLI) tool for PostgreSQL
Download pg-cmd Macos version
pg-cmd.darwin-amd64.zip
pg-cmd.darwin-arm64.zip
PostgreSQL → JSON reference
Type mapping
| Value kind | in PostgreSQL | in JSON |
|---|---|---|
| Int | integer | 1234 (number) |
| Bigint | bigint | 9007199254740993 |
| Decimal | numeric(p,s) | 1234.56 (number) |
| Float | double precision | 1.234e10 (number) |
| Text | varchar(n) | "text" (string) |
| Long text | text | "multi-line\ntext" (escaped newline inside a string) |
| Date | date | "2026-09-18" (string) |
| Datetime | timestamp | "2026-09-18T14:30:00Z" (string) |
| Binary | bytea | "base64:..." (string) |
| Boolean | boolean | true / false (boolean) |
| JSON | jsonb | nested object or array, kept as structure |
Dialect differences
PostgreSQL is a database server and JSON is a file format, so the gap is wider than a dialect difference - the rows below are where values and structure stop lining up.
| Property | in PostgreSQL | in JSON |
|---|---|---|
| port | 5432 | — |
| identifiers | "double quotes" | Double quotes; backslash escapes |
| row limit | LIMIT n | — |
| dates | timestamp, timestamptz, date, time | No date type: dates arrive as strings and the reader must p... |
| long text | TEXT | — |
| binary | BYTEA | Not supported natively - base64 inside a string |
| separator | — | Braces and commas |
| encoding | — | UTF-8 by definition |
| typing | — | string, number, boolean, null, object, array - no date type |
| shape | Tables of rows and columns | Nested objects and arrays |
| ceiling | — | Whole document is usually parsed into memory |
Command line
| Side | Command |
|---|---|
| PostgreSQL | pg_dump or COPY ... TO |
| PostgreSQL (load) | COPY ... FROM |
Convert your data online, free
Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.