jsonnorm / nested JSON to CSV

Technical guide · schema + array semantics

Nested JSON to CSV without losing the shape.

Flatten object paths into inspectable columns, while making the array decision explicit. A trustworthy CSV is a documented normalization, not a pile of guessed delimiters.

The difficult example: objects plus an array

The scalar leaves can become columns, but items is a row-shape choice. jsonnorm preserves that array by default and shows the choice in preview; you can explicitly explode it into repeated rows.

Input JSON

{
  "order": {
    "id": 1001,
    "customer": {
      "name": "Ada",
      "address": { "city": "London", "zip": "SW1A 1AA" }
    }
  },
  "items": [{ "sku": "A1", "qty": 2 }],
  "note": "rush"
}

Resulting CSV (preserve)

order.id,order.customer.name,order.customer.address.city,order.customer.address.zip,items,note
1001,Ada,London,SW1A 1AA,"[{""sku"":""A1"",""qty"":2}]",rush

Why the quotes? The array remains one compact JSON cell, so RFC 4180 quoting protects its commas and quotes. Choosing “create repeated rows” changes the output shape intentionally rather than silently.

What to inspect before downloading

  • Schema: the union view includes every scalar leaf across records, including fields that appear late.
  • Paths: dotted headers are collision-safe; canonical path headers are available for keys containing dots or slashes.
  • Loss: null policy, array handling, formula-like values, and sampled-preview uncertainty are surfaced as warnings.

Have a nested export ready? Inspect its actual columns and array controls first.

Open the JSON converterOpen in examples