When an API export arrives as JSON, validate its shape before opening it in a spreadsheet. This workflow catches missing required fields first, then turns a flat array of objects into a CSV file.
1. Start with a small object array
Use this sample data in JSON Formatter with the example loaded:
[
{"name":"Alice","age":30,"email":"alice@example.com"},
{"name":"Bob","age":28,"email":"bob@example.com"}
]
The formatter can beautify or minify JSON, but it does not check a business schema. For that, open JSON Schema Validator.
2. Validate it with Draft-07
Paste the JSON above into the data field and this schema into the schema field:
{
"$schema":"http://json-schema.org/draft-07/schema#",
"type":"array",
"items":{
"type":"object",
"required":["name","age","email"],
"properties":{
"name":{"type":"string","minLength":1},
"age":{"type":"integer","minimum":0,"maximum":150},
"email":{"type":"string"}
},
"additionalProperties":false
}
}
Click Validate. A valid result means each row has the three required properties, age is an integer from 0 through 150, and email is a string. This example intentionally checks the email field's presence and type only; the page's Ajv setup does not add an email-format plugin. Try changing "age":30 to "age":"30" to see a type error; the schema requires a number, not a numeric string.
3. Convert the validated array
Open JSON to CSV with the example loaded, paste the same array, and copy or download the CSV. The tool uses object keys as column headers:
name,age,email
Alice,30,alice@example.com
Bob,28,bob@example.com
This converter expects an array of JSON objects. Nested objects and arrays may need to be flattened or transformed first, and rows with different keys can produce columns whose values are blank for some rows. Validate the data before conversion; CSV has no schema or data type metadata.
The validator loads Ajv from a CDN when it runs. The formatter and converter operate in the browser; do not paste secrets or personal data into any external service unless your policy allows it. Files or requests are not uploaded by these three browser-side steps.
Why this order works
Validation answers “does every row meet the expected contract?” Conversion answers “how do I represent those rows for a spreadsheet?” Keeping those jobs separate makes a malformed export visible before it becomes a misleading table.
For the formal specification, see the JSON Schema Draft-07 release notes and the JSON Schema specification index.