Simple object
simple-object.json
A small object for checking keys, strings, numbers, and booleans.
93 B · Data records: 1
Preview excerpt
{
"id": 1,
"name": "Example Project",
"enabled": true,
"email": "test@example.com"
}
Download ready-made sample JSON files for upload checks, API mocks, import experiments, and parser tests. The small examples are real downloadable files, so you can keep the same fixture between test runs. Preview a supplied excerpt or copy the complete file contents before downloading. The larger 1 MB and 5 MB options are created locally in your browser when requested. All records are fictional test data, and example.com email addresses do not identify real people.
simple-object.json
A small object for checking keys, strings, numbers, and booleans.
93 B · Data records: 1
{
"id": 1,
"name": "Example Project",
"enabled": true,
"email": "test@example.com"
}
users-20.json
An array of user records with example.com email addresses.
2.1 KB · Data records: 20
[
{
"id": 1,
"name": "Example User 1",
"email": "user1@example.com",
"active": false
},
{
"id": 2,
"name": "Example User 2",
"email": "user2@example.com",
"active": true
},
{
"id": 3,
"name": "Example User 3",
"email": "user3@example.com",
"active": false
},
{
"id": 4,
"name": "Example User 4",
"email": "user4@example.com",
"active": true
},
{
"id": 5,
"name": "Example User 5",
"email": "user5@example.com",
"active": false
},
{
"id": 6,
"name": "Example User 6",
"email": "user6@example.com",
"active": true
},
{
"id": 7,
"name": "Example User 7",
"email": "user7@example.com",
"active": false
},
{
"id": 8,
"name": "Example User 8",
"email": "user8@example.com",
"active": true
},
{
"id": 9,
"name": "Example User 9",
"email": "user9@example.com",
"active": false
},
{
"id": 10,
"name": "Example User 10",nested-orders.json
Arrays, null, booleans, numbers, and Unicode inside an order.
766 B · Data records: 2
{
"fixture": "Fictional test data",
"orders": [
{
"id": "TEST-001",
"customer": {
"id": 1,
"name": "Example User 1",
"email": "user1@example.com",
"active": false
},
"paid": true,
"coupon": null,
"total": 42.5,
"currency": "EUR",
"notes": "Unicode test: 你好 · café · テスト",
"items": [
{
"sku": "DEMO-A",
"quantity": 2,
"price": 21.25
}
]
},
{
"id": "TEST-002",
"customer": {
"id": 2,
"name": "Example User 2",
"email": "user2@example.com",
"active": true
},
"paid": false,
"coupon": "DEMO",
"total": 0,
"items": []
}
]
}
locations.geojson
A FeatureCollection with fictional geographic features.
596 B · Data records: 2
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
0,
0
]
},
"properties": {
"name": "Fictional Origin",
"test": true
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
0,
0
],
[
1,
1
]
]
},
"properties": {
"name": "Fictional Route"
}
}
]
}
events.jsonl
One fictional event per line; parse each line separately.
813 B · Data records: 6
{"event":"test_event_1","user":{"id":1,"name":"Example User 1","email":"user1@example.com","active":false},"at":"2026-01-01T00:00:00Z"}
{"event":"test_event_2","user":{"id":2,"name":"Example User 2","email":"user2@example.com","active":true},"at":"2026-01-01T00:00:01Z"}
{"event":"test_event_3","user":{"id":3,"name":"Example User 3","email":"user3@example.com","active":false},"at":"2026-01-01T00:00:02Z"}
{"event":"test_event_4","user":{"id":4,"name":"Example User 4","email":"user4@example.com","active":true},"at":"2026-01-01T00:00:03Z"}
{"event":"test_event_5","user":{"id":5,"name":"Example User 5","email":"user5@example.com","active":false},"at":"2026-01-01T00:00:04Z"}
{"event":"test_event_6","user":{"id":6,"name":"Example User 6","email":"user6@example.com","active":true},"at":"2026-01-01T00:00:05Z"}
intentionally-invalid.json
An intentionally malformed document for parser error tests.
97 B · Data records: 1
Intentionally invalid JSON — for parser error testing only
{
"purpose": "Intentionally invalid JSON for parser error testing",
"trailingComma": true,
}
sample-1mb.json
1,000 fictional records plus a padding string; generated locally.
~1 MB · Data records: 1,000
Generated locally in your browser
sample-5mb.json
5,000 fictional records plus a padding string; generated locally.
~5 MB · Data records: 5,000
Generated locally in your browser
Choose a fixture that matches the behavior you need to test.
A JSON document has one top-level value. The simple object demonstrates named properties; the user list demonstrates an array of records; the nested order adds arrays, numbers, booleans, null, and Unicode text. These differences matter because an importer expecting an array may reject a perfectly valid object. Start with the example closest to the contract you are testing, then inspect the downloaded bytes rather than assuming every .json file has the same shape.
GeoJSON is JSON with geographic conventions, including a FeatureCollection and coordinate arrays. Parsing it as JSON only checks syntax; it does not prove that coordinates or geometry satisfy your mapping application. JSON Lines stores one JSON value per line and uses .jsonl. Read that example line by line: feeding the complete file to a parser expecting a single JSON document should fail when it encounters the next record.
The explicitly marked invalid JSON example is a negative fixture for error messages and rejection paths. Keep it separate from successful import examples. A useful test records the expected outcome, such as a visible parse error, no partial database write, and a retry that still works with a valid file. Do not treat an intentionally invalid fixture as a template to copy into a production configuration, and do not assume a parser error is an upload transport failure.
Small committed files make bugs easy to reproduce because the bytes stay the same across downloads. A large file serves a different purpose: measuring upload limits, parsing time, memory use, or interface responsiveness. The 1 MB and 5 MB options are generated on demand and contain 1,000 and 5,000 fictional records respectively, plus a padding string to meet the size target. File size therefore does not imply a particular number of records or a particular level of semantic complexity.
Start small, inspect the structure, then test larger inputs.
Select an object, array, nested order, geographic collection, or line-delimited stream. Use the filename, size, record information, and preview to identify the fixture. A preview is an excerpt rather than a promise to show every byte, so download the file when you need to inspect the full structure.
Use the download link for a small static example or generate a larger payload, then use the download link that appears. Open it in a text editor and parse it with the same software used by your application. Apart from the intentionally invalid example, regular JSON files should parse as a single document; the JSON Lines example needs one parse per nonempty line.
Test one behavior at a time and note which fixture you used. For example, verify a nested order preserves null and false distinctly before measuring a 5 MB upload. If you need a different number of random person-like records, follow the JSON file generator link instead of editing a fixed example and continuing to call it the original fixture.
Answers about the supplied fixtures and their limits.
No. Names, identifiers, orders, and contact fields are fictional examples intended for development. Email addresses use example.com. They are useful for demonstrating structures but are not an anonymized production dataset, a business benchmark, or a guarantee that your application meets privacy requirements. You can share the fixture with a bug report without attaching a customer export.
JSON syntax and an application schema are separate checks. Your importer may require specific property names, an array at the root, date strings in a chosen format, or numeric identifiers within a permitted range. A syntactically valid fixture can still violate those rules. Compare the receiving system’s contract and report schema errors separately from malformed JSON errors.
Parse each nonempty line separately. A .jsonl file is a stream of JSON values, not one array with commas between its records. Splitting into lines is appropriate for this supplied example, but a streaming reader is preferable for very large files. Keep the regular user-array sample if the application expects one JSON array instead.
The small fixtures are public static files served directly by their download links. The larger options are assembled in your browser after you request them. They do not require a source-file upload. Downloading a static example is still a normal web request, and any later upload to another application is governed by that application.
The copy action fetches and copies the complete static file text, rather than only the displayed preview excerpt. The preview is useful for a quick structure check. Download the actual file when you need the original filename, byte-size checks, or reproducible upload tests. Clipboard text is not a substitute for checking the original file bytes.
Use the JSON file generator when you need a chosen record count or target size with its fixed random-record schema. Use JSON to YAML when your next task is a format conversion; YAML to JSON provides the reverse workflow. Conversion changes representation and should be tested against the destination application; it does not supply missing business fields or validate a custom schema.
Practical ways to use this tool.
Explore another conversion or file tool.