Markdown To JSON

Login

Email
Password

Don't have an account yet?

Go to Sign up

Input Data
Sample {{ showCoderInput ? 'Choose File' : 'Enter Data' }}

                                
Valid Data Invalid Data — Cannot parse as table
Online Table Editor
Row Col Row Col
Transpose Clear Delete Empty Deduplicate
ABC abc Abc
Replace
First Row as Header
{{ displayRows.length }} rows x {{ displayHeaders.length }} columns{{ firstRowAsHeader ? ' (1 header)' : '' }} {{ selectedRows.length > 0 ? selectedRows.length + ' selected' : '' }}
Output Data ({{ jsonFormatDisplayName }})
{{ copied ? 'Copied!' : 'Copy to Clipboard' }} Download File
Properties
Convert Markdown Table to JSON online — paste, edit, and download.

Data Format:
Indent Size:
Root Object Name:
Parse JSON
Minify Output
Convert Restart
Insert Row Below
Insert Row Above
Insert Column Right
Insert Column Left
Delete Row {{ contextMenu.row + 1 }}
Delete Column {{ contextMenu.col + 1 }}
Clear Cell
Clear Row
Case sensitive Use regex Cancel Replace All

What Is the Markdown To JSON Converter?

The Markdown To JSON Converter on A.Tools transforms Markdown pipe-delimited tables into structured JSON. Five configurable settings let you control the output format, indentation, structure, and whether the result is minified or pretty-printed. All processing runs in your browser — no data leaves your device.

JSON (JavaScript Object Notation) is the universal data interchange format used by APIs, databases, configuration files, and nearly every programming language. Converting Markdown tables to JSON makes your data immediately usable in web applications, data pipelines, and developer workflows.

How to Convert Markdown Tables to JSON?

Step 1: Provide Your Markdown Data

Click Enter Data to paste a Markdown table into the input area, or click Choose File to drag and drop a .md file. Press Sample to load example data.

Step 2: Edit in the Online Table Editor

Once parsed, an interactive spreadsheet appears. Use the toolbar to:

  • Add or delete rows and columns

  • Transpose the table (swap rows and columns)

  • Remove duplicate rows

  • Delete empty rows and columns

  • Change text case (UPPERCASE, lowercase, Capitalize)

  • Find and replace values — supports case-sensitive search and regex

  • Toggle First Row as Header to define field names

Right-click any cell for context-menu operations.

Step 3: Configure Settings

In the Properties panel:

SettingDefaultDescription
Data FormatArray of ObjectsChoose from 4 output structure options
Indent Size2Number of spaces per indentation level
Root Object Name(empty)Wrap output in a named root object
Parse JSONOffParse JSON strings in cells into actual JSON types
Minify OutputOffRemove whitespace for compact output

Step 4: Export

Click Convert to generate JSON output. Use Copy to Clipboard or Download File to save as a .json file.

Key Features

  • Two input modes: Paste Markdown directly or upload a .md file via drag-and-drop

  • Full table editor: Edit, transpose, deduplicate, find-and-replace before converting

  • Four data formats: Array of Objects, Array of Arrays, Object of Objects, and Keyed format

  • Root Object Name: Wrap the entire output in a named container for API compatibility

  • Indent control: Set indentation to 2, 4, or 8 spaces — or use tab characters

  • Smart JSON parsing: Parse embedded JSON strings in cells into nested objects

  • Minify output: Strip whitespace for production-ready compact JSON

  • Client-side processing: Files never leave the browser — zero data upload

  • Undo/Redo: Full edit history with revert support

  • Context menu: Right-click for quick row/column/cell operations

  • Header toggle: Treat the first row as field names or regular data

  • Validation indicator: Real-time feedback on input validity

What the Output Looks Like

Given this Markdown input:

| name  | age | city        |
|-------|-----|-------------|
| Alice | 30  | New York    |
| Bob   | 25  | Los Angeles |

Array of Objects (default)

[
 {
   "name": "Alice",
   "age": "30",
   "city": "New York"
 },
 {
   "name": "Bob",
   "age": "25",
   "city": "Los Angeles"
 }
]

Array of Arrays

[
 ["Alice", "30", "New York"],
 ["Bob", "25", "Los Angeles"]
]

Object of Objects

{
 "0": {
   "name": "Alice",
   "age": "30",
   "city": "New York"
 },
 "1": {
   "name": "Bob",
   "age": "25",
   "city": "Los Angeles"
 }
}

Keyed Format

Uses the first column value as the key for each row:

{
 "Alice": {
   "age": "30",
   "city": "New York"
 },
 "Bob": {
   "age": "25",
   "city": "Los Angeles"
 }
}

With Root Object Name set to "users"

{
 "users": [
   {
     "name": "Alice",
     "age": "30",
     "city": "New York"
   },
   {
     "name": "Bob",
     "age": "25",
     "city": "Los Angeles"
   }
 ]
}

With Minify Output enabled

[{"name":"Alice","age":"30","city":"New York"},{"name":"Bob","age":"25","city":"Los Angeles"}]

With Parse JSON enabled

If a cell contains {"lat":40.7,"lng":-74.0}, Parse JSON converts it into a nested object:

[
 {
   "name": "Alice",
   "age": "30",
   "location": {
     "lat": 40.7,
     "lng": -74.0
   }
 }
]

Understanding JSON Data Formats

What is JSON?

JSON (JavaScript Object Notation) is a lightweight, text-based format for storing and exchanging structured data. Defined in RFC 8259, it uses human-readable key-value pairs and arrays. Every major programming language supports JSON natively.

The Four Format Options

FormatStructureBest For
Array of Objects[{"k":"v"}, ...]APIs, general data, most common
Array of Arrays[["v1","v2"], ...]Positional data, no headers needed
Object of Objects{"0":{"k":"v"}, ...}Indexed access by row number
Keyed{"id":{"k":"v"}, ...}Lookup by unique key from first column

When to use each format

Array of Objects — The default and most widely used format. Ideal for REST APIs, configuration files, and data interchange. Each record is self-describing with named fields.

Array of Arrays — More compact than objects since keys are omitted. Useful when column order is consistent and field names are unnecessary — for example, chart data, matrix operations, or positional parameters.

Object of Objects — Rows are keyed by their numeric index. Useful when you need to reference specific rows by position without scanning the array.

Keyed Format — Uses the first column's value as the key for each row. Ideal for lookup tables, dictionaries, configuration maps, and any dataset where the first column contains unique identifiers.

JSON vs JSONLines

This tool produces standard JSON — all records wrapped in a single array or object. For streaming, BigQuery imports, or LLM training data, use Markdown To JSONLines instead, which outputs one JSON record per line.

Settings Explained

Data Format

Controls the top-level structure of the JSON output. Choose from:

  • Array of Objects[{...}, {...}] — Each row is an object with named fields

  • Array of Arrays[["...", "..."], ...] — Each row is a flat array of values

  • Object of Objects{"0": {...}, "1": {...}} — Rows indexed by position

  • Keyed{"uniqueKey": {...}, ...} — Rows keyed by first column value

Indent Size

Number of spaces per indentation level in the output. Options:

  • 2 spaces (default) — Standard for most JavaScript projects

  • 4 spaces — Common in Python and Java conventions

  • 8 spaces — Legacy Linux kernel style

  • Tab — Use tab characters instead of spaces

Only applies when Minify Output is disabled.

Root Object Name

When set, wraps the entire output in an object with this name as the key:

{
 "rootObjectName": [
   ...your data...
 ]
}

Leave empty to output the raw array or object without a wrapper. Use this when an API or configuration format requires a specific top-level key.

Parse JSON

When enabled, the tool inspects each cell value. If a cell contains a valid JSON string (object, array, number, boolean, or null), it is parsed into the corresponding JSON type:

Cell ValueParse JSON OffParse JSON On
42"42" (string)42 (number)
true"true" (string)true (boolean)
null"null" (string)null (null)
{"a":1}"{\"a\":1}" (escaped){"a":1} (nested object)
[1,2,3]"[1,2,3]" (escaped)[1,2,3] (nested array)
hello"hello" (string)"hello" (string)

Minify Output

Removes all whitespace, newlines, and indentation from the output. The result is a single-line JSON string — significantly smaller in file size. Use for production deployment, API responses, or storage. Disable during development for readability.

Use Cases: When to Convert Markdown to JSON

ScenarioRecommended Format
REST API mock dataArray of Objects
Configuration filesArray of Objects or Keyed
Data import into MongoDBArray of Objects
Chart visualization dataArray of Arrays
Lookup tables / dictionariesKeyed
Application state seedingArray of Objects with Root Object Name
Nested data with embedded JSONArray of Objects with Parse JSON
Production deploymentMinify Output enabled
Python / pandas workflowsArray of Objects
Node.js / JavaScript projectsArray of Objects, indent 2

API Mock Data Example

{
 "users": [
   {"id": 1, "name": "Alice", "role": "admin"},
   {"id": 2, "name": "Bob", "role": "editor"}
 ]
}

Configuration File Example

Keyed format creates a clean config map:

{
 "production": {"host": "api.example.com", "port": "443", "timeout": "30"},
 "staging": {"host": "staging.example.com", "port": "8443", "timeout": "60"}
}

Python Usage Example

import json
with open("data.json") as f:
   data = json.load(f)

for
row in data:
   print(row["name"], row["city"])

JavaScript Usage Example

const data = await fetch("data.json").then(r => r.json());

data.forEach(row => {
 console.log(row.name, row.city);
});

Frequently Asked Questions (FAQ)

  • Does this tool upload my files to a server?

    No. All file parsing and conversion runs in your browser using JavaScript. Your data stays on your device. A.Tools never receives, stores, or transmits your file contents.

  • What Markdown table formats are supported?

    The tool supports standard pipe-delimited Markdown tables following the CommonMark specification, including tables with or without leading/trailing pipes and alignment indicators.

  • What is the difference between the four data formats?

    Array of Objects outputs named fields ([{"name":"Alice"}]). Array of Arrays outputs positional values ([["Alice"]]). Object of Objects indexes rows by number ({"0":{...}}). Keyed uses the first column as a unique key ({"Alice":{...}}).

  • What does Root Object Name do?

    It wraps the output array or object inside a named container: {"yourName": [...]}. Leave empty for a raw array or object without a wrapper.

  • What does Parse JSON do?

    When enabled, the tool detects JSON strings inside cells and parses them into actual JSON types (numbers, booleans, null, nested objects, arrays). Without it, all cell values are treated as strings.

  • When should I use Minify Output?

    Enable Minify Output when generating JSON for production — APIs, file storage, or network transfer. It removes all whitespace, reducing file size. Disable it during development for readability.

  • What file extension should I use?

    Use .json for standard JSON output. If you need one-record-per-line format, use the Markdown To JSONLines tool instead, which outputs .jsonl files.

  • Can I edit the table before converting?

    Yes. After parsing, the full table editor lets you modify cells, add or remove rows and columns, transpose, deduplicate, change text case, and find-and-replace values.

  • Is there a file size limit?

    Processing is client-side, so the limit depends on your browser's memory. Tables with tens of thousands of rows work reliably on modern browsers.

Featured Tools

Featured tools that you might find useful.

Popular Tools

List of popular tools that users love and frequently use.

New Tools

The latest tools added to our collection, designed for you.

Topics

The tools grouped by topics to quickly find what you need.
Free online Excel to JSON converter. Transform XLSX, XLS, XLSM files into JSON arrays, objects, or keyed formats instantly in your browser — no upload, 100% private.

Excel To JSON

Free online Excel to JSON converter. Transform XLSX, XLS, XLSM files into JSON arrays, objects, or keyed formats instantly in your browser — no upload, 100% private.
Free Excel to CSV converter. Convert XLSX, XLS, XLSM to CSV instantly in your browser. No upload, 100% private. Edit, transpose, deduplicate before exporting.

Excel To CSV

Free Excel to CSV converter. Convert XLSX, XLS, XLSM to CSV instantly in your browser. No upload, 100% private. Edit, transpose, deduplicate before exporting.
Free online Excel to SQL converter. Generate CREATE TABLE and INSERT statements from spreadsheets for MySQL, PostgreSQL, SQLite, and SQL Server. Supports batch insert, primary keys, and type inference.

Excel To SQL

Free online Excel to SQL converter. Generate CREATE TABLE and INSERT statements from spreadsheets for MySQL, PostgreSQL, SQLite, and SQL Server. Supports batch insert, primary keys, and type inference.
Free online Excel to ASCII table converter with 10 border styles (MySQL, Unicode, reStructuredText, and more). Add code comment wrappers in 8 languages. Supports text alignment. Client-side processing.

Excel To ASCII Table

Free online Excel to ASCII table converter with 10 border styles (MySQL, Unicode, reStructuredText, and more). Add code comment wrappers in 8 languages. Supports text alignment. Client-side processing.