Summary
Implement a high-performance JSON to CSV converter. While the project currently supports CSV to JSON, the reverse operation is essential for developers exporting data to spreadsheet software or business reports.
Proposed User Interface
Input Area: Large text area for JSON content + "Upload JSON File" button.
Options Bar:
Delimiter Toggle: Comma (default), Semicolon, Tab.
Include Header: Checkbox to toggle the first row of column names.
Flatten Nested Objects: Checkbox to handle objects like {"user": {"name": "Alice"}} by converting to user.name.
Output Area: Read-only text area showing the CSV preview + "Download .csv" and "Copy" buttons.
Technical Implementation Details
Logic: Use a lightweight library like json2csv or a custom recursive flattening function to ensure nested data is handled correctly.
File Path: app/components/developmentToolsComponent/jsonToCsvConverter.tsx
Performance: Should support large JSON arrays (up to 5MB) without locking the UI thread (consider using Worker if necessary or chunked processing).
Summary
Implement a high-performance JSON to CSV converter. While the project currently supports CSV to JSON, the reverse operation is essential for developers exporting data to spreadsheet software or business reports.
Proposed User Interface
Input Area: Large text area for JSON content + "Upload JSON File" button.
Options Bar:
Delimiter Toggle: Comma (default), Semicolon, Tab.
Include Header: Checkbox to toggle the first row of column names.
Flatten Nested Objects: Checkbox to handle objects like {"user": {"name": "Alice"}} by converting to user.name.
Output Area: Read-only text area showing the CSV preview + "Download .csv" and "Copy" buttons.
Technical Implementation Details
Logic: Use a lightweight library like json2csv or a custom recursive flattening function to ensure nested data is handled correctly.
File Path: app/components/developmentToolsComponent/jsonToCsvConverter.tsx
Performance: Should support large JSON arrays (up to 5MB) without locking the UI thread (consider using Worker if necessary or chunked processing).