Minifying JSON with Ruby
I've written about pretty-printing JSON in the past, but not about minifying it. Sometimes you don't want an overly verbose format, i.e. when entering logs, or where you're restrained on file-sizes.
Let's say that we have a nicely pretty-printed JSON file, such as:
{
"key": [
123,
456
],
"key2": "value"
}
If we want to minify the JSON, we can use the following:
$ ruby -rjson -e 'puts JSON.parse(ARGF.read).to_json' file.json
$ ruby -rjson -e 'puts JSON.parse(ARGF.read).to_json' < file.json
This then outputs it as the minified JSON string representation of the object above!
{"key":[123,456],"key2":"value"}