JSON is a tree and CSV is a grid, so every conversion between them is a decision about how to flatten the tree. Almost all of the surprises come from that rather than from any particular tool, and knowing which decision was made is what lets you trust the output.
The clean case is an array of flat objects: each object becomes a row, each key becomes a column, and nothing is lost. The trouble starts when a value is itself an object, when different records carry different keys, or when an array appears inside a record. Nested objects are flattened into dotted column names, so an address object holding a city becomes an address.city column. Records with different keys produce the union of all columns, with empty cells where a record had nothing. That is usually what a spreadsheet wants, and it is worth confirming rather than assuming.
Types do not survive the crossing. CSV has no notion of number, boolean or null; every cell is text, and whatever opens the file afterwards will apply its own guesses. This is where identifiers with leading zeros get silently mangled into integers, where a long numeric ID becomes scientific notation, and where a date in one format arrives as a different date in another locale. If the data is going into a spreadsheet, that spreadsheet's import settings matter as much as the conversion did.
Arrays inside records are the case with no good answer. A grid cannot represent a list inside a cell without choosing a convention, and every convention is lossy in some direction: join with a separator and you break on any value containing that separator, or expand into numbered columns and the shape changes with the longest record. This is the case to inspect by hand rather than trust.
The practical check takes fifteen seconds and catches all of the above: open the result and find one row whose correct values you already know. If the identifier still has its leading zero and the date is the date you expected, the conversion did what you wanted. If not, you have learned it now rather than after sending it on.
The conversion runs in your browser. That matters because the JSON being converted to CSV is almost always an export destined for a spreadsheet, which means it is usually a list of real records about real people, and those are exactly the files that should not be uploaded to a service to be reshaped.