Withdata Software

Export data from PostgreSQL to JSON via command line on Windows

Want to export PostgreSQL data to JSON Lines (JSONL) file via Command Line Interface (CLI) on Windows?

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.

Download pg-cmd Windows version
pg-cmd.windows-386.zip
pg-cmd.windows-amd64.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 Windows

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 Windows version
pg-cmd.windows-386.zip
pg-cmd.windows-amd64.zip

PostgreSQL → JSON reference

Type mapping

Value kindin PostgreSQLin JSON
Intinteger1234 (number)
Bigintbigint9007199254740993
Decimalnumeric(p,s)1234.56 (number)
Floatdouble precision1.234e10 (number)
Textvarchar(n)"text" (string)
Long texttext"multi-line\ntext" (escaped newline inside a string)
Datedate"2026-09-18" (string)
Datetimetimestamp"2026-09-18T14:30:00Z" (string)
Binarybytea"base64:..." (string)
Booleanbooleantrue / false (boolean)
JSONjsonbnested 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.

Propertyin PostgreSQLin JSON
port5432—
identifiers"double quotes"Double quotes; backslash escapes
row limitLIMIT n—
datestimestamp, timestamptz, date, timeNo date type: dates arrive as strings and the reader must p...
long textTEXT—
binaryBYTEANot 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
shapeTables of rows and columnsNested objects and arrays
ceiling—Whole document is usually parsed into memory

Command line

SideCommand
PostgreSQLpg_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.