MySQL to JSON Lines Converter
Transform MySQL database dumps into JSON Lines format for efficient data streaming
MySQL Input
JSON Lines Output
About MySQL to JSON Lines Converter
Convert MySQL database dumps (CREATE TABLE and INSERT statements) to JSON Lines (JSONL) format, also known as newline-delimited JSON. Each row becomes a separate JSON object or array on its own line, perfect for streaming and big data applications.
Key Features
- Line-Delimited Format: One JSON object/array per line
- Object Mode: Convert rows to objects using column names as keys
- Array Mode: Convert rows to simple arrays
- Streaming Ready: Process large datasets line-by-line
- Big Data Compatible: Works with Hadoop, Spark, and other tools
- File Download: Save as .jsonl file
- Instant Preview: Real-time conversion as you type
How to Use
- Input MySQL Data: Paste your MySQL dump or upload a .sql file
- Configure Options: Choose whether to use columns for object keys
- Review Output: The JSON Lines updates automatically
- Copy or Download: Use the JSONL in your application
What is JSON Lines?
JSON Lines is a text format where:
- Each line is a valid JSON value (object or array)
- Lines are separated by newline characters (\n)
- Files can be processed line-by-line without loading entire dataset
- Ideal for streaming, logging, and big data processing
Example Conversion
MySQL Input:
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100), age INT, department VARCHAR(50) ); INSERT INTO employees VALUES (1, 'John Doe', 28, 'Engineering'); INSERT INTO employees VALUES (2, 'Jane Smith', 34, 'Marketing');
JSON Lines Output (Object Mode):
{"id":"1","name":"John Doe","age":"28","department":"Engineering"}
{"id":"2","name":"Jane Smith","age":"34","department":"Marketing"} JSON Lines Output (Array Mode):
["id","name","age","department"] ["1","John Doe","28","Engineering"] ["2","Jane Smith","34","Marketing"]
Common Use Cases
- Data Streaming: Process large MySQL exports without loading into memory
- Log Files: Structured logging of database changes in JSON Lines format
- Big Data: Import MySQL data into Hadoop, Spark, or other big data tools
- ETL Pipelines: Extract MySQL data and load efficiently into data warehouses
- Database Import: Bulk import MySQL data into MongoDB, Elasticsearch, etc.
- API Responses: Stream large MySQL result sets from APIs
- Data Migration: Migrate MySQL databases to NoSQL systems
Advantages of JSON Lines
- Streamable: Process one line at a time
- Appendable: Add new records without parsing entire file
- Simple: Easy to generate and parse
- Robust: Corrupted line doesn't affect others
- Universal: Supported by many data processing tools
- Memory Efficient: No need to load entire dataset
Processing JSON Lines
Python:
import json
with open('output.jsonl', 'r') as f:
for line in f:
data = json.loads(line)
print(data['name'], data['age']) JavaScript/Node.js:
const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: fs.createReadStream('output.jsonl')
});
rl.on('line', (line) => {
const data = JSON.parse(line);
console.log(data.name, data.age);
}); Command Line (jq):
cat output.jsonl | jq '.name'
Tools Supporting JSON Lines
- Apache Spark
- Hadoop
- MongoDB (mongoimport)
- Elasticsearch (bulk API)
- BigQuery
- jq (command-line JSON processor)
- Pandas (Python data analysis)
- Apache Kafka
Supported MySQL Syntax
- CREATE TABLE: Extracts column names from table definitions
- INSERT INTO: Parses VALUES clauses with quoted strings
- Column Lists: Supports INSERT INTO table (col1, col2) VALUES format
- Quoted Values: Handles single and double quotes properly
- Escaped Quotes: Processes escaped quotes in string values
Tips for Best Results
- Include CREATE TABLE for automatic column name detection
- Use object mode for self-describing data
- Use array mode for minimal file size
- Process line-by-line for large MySQL exports
- Validate with JSON Lines validators if needed
- Use .jsonl or .ndjson file extension
Privacy & Security
All conversions happen locally in your browser. Your MySQL data is never uploaded to any server, ensuring complete privacy and security.
