Skip to content

Sample JSON Files

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.

Ready-made downloads

Simple object

simple-object.json

A small object for checking keys, strings, numbers, and booleans.

93 B · Data records: 1

Download
Preview excerpt
{
  "id": 1,
  "name": "Example Project",
  "enabled": true,
  "email": "test@example.com"
}

20 fictional users

users-20.json

An array of user records with example.com email addresses.

2.1 KB · Data records: 20

Download
Preview excerpt
[
  {
    "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 order

nested-orders.json

Arrays, null, booleans, numbers, and Unicode inside an order.

766 B · Data records: 2

Download
Preview excerpt
{
  "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": []
    }
  ]
}

GeoJSON collection

locations.geojson

A FeatureCollection with fictional geographic features.

596 B · Data records: 2

Download
Preview excerpt
{
  "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"
      }
    }
  ]
}

JSON Lines events

events.jsonl

One fictional event per line; parse each line separately.

813 B · Data records: 6

Download
Preview excerpt
{"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"}

Invalid JSON

intentionally-invalid.json

An intentionally malformed document for parser error tests.

97 B · Data records: 1

Intentionally invalid JSON — for parser error testing only

Download
Preview excerpt
{
  "purpose": "Intentionally invalid JSON for parser error testing",
  "trailingComma": true,
}

Larger files, generated on demand

1 MB JSON

sample-1mb.json

1,000 fictional records plus a padding string; generated locally.

~1 MB · Data records: 1,000

Generated locally in your browser

5 MB JSON

sample-5mb.json

5,000 fictional records plus a padding string; generated locally.

~5 MB · Data records: 5,000

Generated locally in your browser

Understand the sample files

Choose a fixture that matches the behavior you need to test.

Understand the JSON structures

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.

Separate JSON, GeoJSON, and JSON Lines

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.

Test failures intentionally

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.

Use fixed fixtures before large payloads

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.

How to use these downloads

Start small, inspect the structure, then test larger inputs.

  1. 1

    Choose a contract to exercise

    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.

  2. 2

    Download and validate locally

    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.

  3. 3

    Record an expected result

    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.

Frequently asked questions

Answers about the supplied fixtures and their limits.

Common use cases

Practical ways to use this tool.

  • Attach a stable object or nested-order fixture to a parser bug report so another developer can reproduce the same input.
  • Exercise upload success, syntax rejection, and schema rejection as separate test cases with clearly named files.
  • Check how an interface displays Unicode values, null fields, booleans, and arrays before moving to a larger generated payload.

Related tools

Explore another conversion or file tool.