Format conversion

How to flatten nested JSON into CSV columns

2026-05-30
Task

A JSON object stores values inside nested objects, for example category.name and price.value. A spreadsheet or importer needs flat CSV columns.

Short answer

Choose a JSON source and CSV output. In the table snapshot, keep the original JSON paths as sources and rename only the final column headers.

What matters for the result

  • A flat CSV is built by selecting exact JSON paths for each column, not by copying the whole object.
  • The output column name may differ from the source path: price.value can become price.
  • If the JSON contains a product array, select the correct repeating level first, otherwise the CSV may become one row.

Before / After

Before

source data
{
    "sku": "CHAIR-NORD-01",
    "category": {
        "name": "Office chairs",
        "code": "chairs"
    },
    "price": {
        "value": 129.9,
        "currency": "EUR"
    }
}

After

result
skucategory_namecategory_codeprice_valueprice_currency
CHAIR-NORD-01Office chairschairs129.90EUR

How to Do It in Eofferix

  1. Create a transformation profile, upload the JSON file, and choose CSV as the output format.
    JSON source and CSV output selected in Eofferix
    The source is a JSON file, and the output format is CSV.
  2. Save the profile and open the table snapshot. At first, Eofferix shows nested fields as JSON paths: category.name, category.code, price.value, price.currency.
    Table snapshot with JSON path columns
    The upper row contains the original JSON paths.
  3. Rename only the final column headers in the lower field: category.name to category_name, category.code to category_code, price.value to price_value, and price.currency to price_currency.
    Renamed CSV columns for nested JSON fields
    The source paths stay in the top row; the CSV column names are changed in the lower fields.
  4. Check the source of renamed columns. For example, price_value must still read from price.value, and price_currency must still read from price.currency.
    Source field dropdown for price_value
    The source dropdown confirms that price_value still uses price.value.
  5. Save the template. On the final step, run the transformation.
    Final CSV export step in Eofferix
    After saving the template, the final step starts the transformation.

Process data faster with Eofferix

Create a free account to automate catalogs and price lists around your own rules.

Sign up