The dotted-column convention is the most widely understood flattening strategy. A field at the path customer.address.city becomes a column literally named customer.address.city. Pandas json_normalize uses this convention, jq paths produce the same shape, and most cloud data warehouses including BigQuery and Snowflake accept dotted column names natively. The convention scales to arbitrary depth, which is both its strength and its weakness. A deeply nested JSON with five levels of branching can easily produce a CSV with two or three hundred columns, most of which a human reader will never look at. Flatten depth controls let you stop the recursion at a sensible level for your audience.
For a typical business-analyst audience, flatten depth 2 hits the sweet spot. Top-level fields become regular columns, one level of nesting expands into dotted columns, and anything deeper stays as a JSON-encoded cell. The analyst sees a manageable column count, the data preserved beyond depth 2 is still recoverable from the JSON-encoded cells if needed, and the CSV opens cleanly in any spreadsheet without freezing the tab. For a downstream pipeline that needs full flatness, depth unlimited is the right choice and the resulting wide CSV is still well-formed even if it has hundreds of columns.
Inner arrays are the trickiest case. The default JSON-encoded-cell behaviour preserves all information at the cost of inner data not being filterable in a spreadsheet. The row-explode mode duplicates parent fields and emits one row per inner array element, which makes filtering and pivoting easy but multiplies the row count. For an order JSON with 100 orders averaging 3 line items each, explode mode produces 300 rows instead of 100. That is usually fine for analysis but worth noting for size-sensitive use cases. If multiple inner arrays exist at the same level, exploding all of them produces a Cartesian product, which is rarely what you want, so the converter lets you pick which array to explode and keep the others JSON-encoded.
Column ordering matters for readability. The default order follows the order of first appearance in a depth-first scan of the input, which usually produces a sensible layout where parent fields appear before their nested children. The preview UI shows the column list with drag handles so you can reorder before downloading. For recurring conversions, the URL captures the active settings so a bookmark restores your preferred column order, flatten depth, and array handling on the next visit.