Import data from JSON to MySQL via command line on MacOS

Want to import data from JSON Lines (JSONL) to MySQL via Command Line Interface (CLI) on MacOS?

Using my-cmd, a Command Line Interface (CLI) client for MySQL, you can import data from JSON Lines to MySQL (MariaDB, Percona) easily and fast. Direct Interaction or Scripting and Automation.

  • No need to install MySQL 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 my-cmd Macos version Download my-cmd

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.

Import data from JSON Lines to MySQL (MariaDB, Percona) via command line on MacOS

1. In interactive mode:

my-cmd> load table=media_messages 
      > datafile=f:\media_messages.json 
      > filetype=json;

2. In batch mode:

my-cmd dsn="pan:withdata@192.168.0.102:3306/test" task=load table=media_messages datafile=f:\media_messages.json filetype=json quit=y

“loadtype=replace” will delete all data in table before inserting.

See parameters detail.


More about my-cmd – Command Line Interface (CLI) tool for MySQL

Download my-cmd Macos versionDownload my-cmd

JSON → MySQL reference

Type mapping

Value kindin JSONin MySQL
Int1234 (number)INT
Bigint9007199254740993BIGINT
Decimal1234.56 (number)DECIMAL(p,s)
Float1.234e10 (number)DOUBLE
Text"text" (string)VARCHAR(n)
Long text"multi-line\ntext" (escaped newline inside a string)LONGTEXT
Date"2026-09-18" (string)DATE
Datetime"2026-09-18T14:30:00Z" (string)DATETIME
Binary"base64:..." (string)LONGBLOB
Booleantrue / false (boolean)TINYINT(1)
JSONnested object or array, kept as structureJSON

Dialect differences

JSON is a file format and MySQL is a database server, so the target has to be told the types the file never carried – the rows below are where the two sides diverge.

Propertyin JSONin MySQL
port—3306
identifiersDouble quotes; backslash escapes`backtick`
row limit—LIMIT n
datesNo date type: dates arrive as strings and the reader must p...DATETIME, TIMESTAMP, DATE, TIME
long text—TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT
binaryNot supported natively - base64 inside a stringBLOB / TINYBLOB / LONGBLOB
separatorBraces and commas—
encodingUTF-8 by definition—
typingstring, number, boolean, null, object, array - no date type—
shapeNested objects and arraysTables of rows and columns
ceilingWhole document is usually parsed into memory—

Command line

SideCommand
MySQLmysqldump, or mysql -e "SELECT ..." > out.csv
MySQL (load)mysqlimport, or LOAD DATA INFILE

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.


Posted

in

by