Free tool
JSON to chart
Paste JSON from an API, a script or a Chart.js config and download the chart as SVG or PNG.
Shapes it reads.
Paste any of these as they are. The builder says which one it found.
- A list of objects
-
One object per row, keys as columns.
[{ "week": "2026-07-06", "signups": 182 }, …] - An object of lists
-
One list per column, as dataframes return them.
{ "week": ["2026-07-06", "2026-07-13"], "signups": [182, 205] } - Labels and values
-
Pairs, or an object of numbers. Good for pie charts.
{ "Chrome": 62, "Safari": 21, "Firefox": 9 } - Chart.js data
-
The data part or the whole config. Its chart type carries over.
{ "type": "bar", "data": { "labels": […], "datasets": […] } } - A wrapped response
-
Rows under one key, like "data" or "results".
{ "data": [{ "day": "Mon", "requests": 1200 }] }
Related
Questions
Something else? Send us a note, right from the page.
Is my JSON uploaded anywhere?
No. It is read and drawn in your browser. An editor link carries all of your JSON, even columns the chart leaves out, after the # in the address, which browsers never send to a server.
Which JSON shapes work?
A list of objects, an object of lists, label and value pairs, an object of numbers, Chart.js data or configs, arrays of arrays, a list of numbers, JSON Lines, and any of those wrapped in one key like "data".
Can I paste a Chart.js config and get a PNG?
Yes. The labels, datasets and chart type are read; colors and plugin options are not. Then use Download PNG. Doing it in your own code? See the Chart.js to PNG guide.
How are values read?
Numbers can be JSON numbers or text like "1,200", "12%" or "$1,200". null, a missing key or an empty string leaves a gap, not a zero. Nested objects, lists inside rows and true or false are skipped.
My JSON is nested. What now?
Flatten it first: one object per row, one number per key. With jq, for example: .items | map({ name: .name, visits: .stats.visits }).
What does the error with a line and column mean?
The JSON has a syntax error at that spot. The usual suspects: a trailing comma, single quotes, or keys without quotes.
Why did a column not show up as a series?
Only columns that are mostly numbers become series; columns of text can be labels. Up to 8 series fit on one chart.