Data files are the ones you least want to upload
A CSV export is rarely just data. It is a customer list, a payroll run, a set of survey responses, an API dump with tokens still in it. Pasting that into a web converter means sending your organisation’s data to a third party, which in a lot of workplaces is a policy breach even when nothing goes wrong — and it is the sort of thing a security review asks about afterwards.
Every tool in this section parses and rewrites your file in the browser. JSON parsing is native, CSV is handled by a local parser, and spreadsheets go through SheetJS running in a Web Worker. Nothing is transmitted, so there is no vendor to add to a data-processing register and no retention window to worry about.
Working between JSON, CSV and Excel
JSON and CSV describe data differently, and most conversion friction comes from that gap. CSV is flat: one header row, one record per line, every value a string. JSON nests, and distinguishes numbers, booleans and nulls from text. Converting JSON to CSV therefore has to flatten — nested objects become dotted column names, arrays get indexed — and converting back has to decide what a bare string like "007" or "TRUE" was meant to be.
Excel adds its own quirks on top: long numbers turned into scientific notation, leading zeros stripped from postcodes and IDs, dates silently reinterpreted by locale. Converting to JSON first and inspecting the values is often the fastest way to find out what a spreadsheet actually did to your data.
Formatting, validation and encoding
The JSON formatter is for the everyday case of an API response arriving as one unreadable line: it pretty-prints with real indentation, and when the parse fails it reports where, which is usually a trailing comma or a smart quote pasted in from a document. The Base64 tool covers the other direction — decoding a data URI, a JWT payload, or an encoded config value to see what is inside it without pasting a token into a website that logs it.
Subtitle conversion between SRT and VTT is a smaller job with a strict format: WebVTT needs a header line and uses dots rather than commas in its timestamps, which is exactly why a renamed file fails to load in a browser player.