Does Minifying JSON Matter If You Use Gzip?
Almost every guide tells you to minify JSON to save bandwidth. Almost none of them measure what happens after the compressor has had its turn.
Working notes on the parts of JSON that actually cause problems — parse errors, schema evolution, array diffing, type inference and the Excel behaviours that quietly corrupt a CSV export. Each article links to the tool that does the job.
Almost every guide tells you to minify JSON to save bandwidth. Almost none of them measure what happens after the compressor has had its turn.
A list of country codes, a YAML parser, and Norway quietly turns into false. The famous version of this story is true — but whether it happens to you depends entirely on which parser you are holding.
The CSV is correct. Excel changes it during import, silently, and saving the file makes the damage permanent.
The JSON spec puts no limit on the size of a number. Every mainstream parser does. The gap between those two facts is where production bugs live.
If the unexpected token is `<`, you are not looking at a JSON problem. You are looking at an HTML page where JSON should have been.
JSON had comments for about a year. Douglas Crockford removed them on purpose, and his reason was not about syntax.
You asked for alphabetical. You got "2", "10", "A", "Z", "_x", "a", "b". Two separate rules are fighting, and both of them are working correctly.
One big array has to be complete to be worth anything. Lose the last byte and you lose every record. NDJSON costs nothing to adopt and does not have that property.
Your editor is not slow at parsing JSON. It is slow at drawing it. Those are different problems with different solutions.
No error, no warning, no clue. One value wins, the others vanish, and every tool you own reports the document as valid.
"😀".length is 2, and that is not a JavaScript quirk — it is the same reason your database column overflowed.
They look like they do the same job. One is a precise address for a single value; the other is a query that may match hundreds. Picking wrong makes everything downstream awkward.
Most “the API is broken” incidents are a field that changed type, a field that went missing, or a null nobody expected.
Generated types are inference from evidence. The quality of the output is entirely determined by the quality of the sample.
A generated schema describes the sample you gave it. A useful schema describes the agreement you actually want to enforce.
CSV is flat and JSON is a tree. Everything difficult about the conversion follows from that one sentence.
JSONPath is XPath for JSON: a compact way to say “every email address in this document”, whatever shape it is in.
Reorder a few keys and `git diff` says every line changed. A structural diff says nothing changed — because nothing did.
JSON for machines, YAML for humans — with a short list of YAML behaviours that have caused real outages.
“Unexpected token } in JSON at position 582” is a true statement and a useless one. Here is how to get from it to the actual problem.
Formatting changes nothing but whitespace — which is exactly why choosing the right moment to do it matters.
JSON is small enough that its entire grammar fits on one page — which is exactly why the edge cases catch people out.